Commit 24427cda authored by Tim Schumacher's avatar Tim Schumacher Committed by Ard Biesheuvel
Browse files

efi: pstore: Request at most 512 bytes for variable names



Work around a quirk in a few old (2011-ish) UEFI implementations, where
a call to `GetNextVariableName` with a buffer size larger than 512 bytes
will always return EFI_INVALID_PARAMETER.

This was already done to efivarfs in commit f45812cc ("efivarfs:
Request at most 512 bytes for variable names"), but the second copy of
the variable iteration implementation was overlooked.

Signed-off-by: default avatarTim Schumacher <timschumi@gmx.de>
Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
parent 4cece764
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -162,7 +162,15 @@ static ssize_t efi_pstore_read(struct pstore_record *record)
	efi_status_t status;

	for (;;) {
		varname_size = 1024;
		/*
		 * A small set of old UEFI implementations reject sizes
		 * above a certain threshold, the lowest seen in the wild
		 * is 512.
		 *
		 * TODO: Commonize with the iteration implementation in
		 *       fs/efivarfs to keep all the quirks in one place.
		 */
		varname_size = 512;

		/*
		 * If this is the first read() call in the pstore enumeration,