RAS/AMD/FMPM: Avoid NULL ptr deref in get_saved_records()

An old, invalid record should be cleared and skipped.

Currently, the record is cleared in ERST, but it is not skipped. This
leads to a NULL pointer dereference when attempting to copy the old
record to the new record.

Continue the loop after clearing an old, invalid record to skip it.

Fixes: 6f15e617cc ("RAS: Introduce a FRU memory poison manager")
Signed-off-by: Yazen Ghannam <yazen.ghannam@amd.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Tested-by: Muralidhara M K <muralidhara.mk@amd.com>
Link: https://lore.kernel.org/r/20240319113322.280096-2-yazen.ghannam@amd.com
This commit is contained in:
Yazen Ghannam 2024-03-19 06:33:21 -05:00 committed by Borislav Petkov (AMD)
parent 4cece76496
commit 4b0e527c99

View File

@ -676,8 +676,10 @@ static int get_saved_records(void)
}
new = get_valid_record(old);
if (!new)
if (!new) {
erst_clear(record_id);
continue;
}
/* Restore the record */
memcpy(new, old, len);