efi_loader: loosen buffer parameter check in efi_file_read
authorStefan Sørensen <stefan@astylos.dk>
Wed, 22 Jul 2020 07:43:31 +0000 (09:43 +0200)
committerHeinrich Schuchardt <xypron.glpk@gmx.de>
Wed, 22 Jul 2020 10:32:41 +0000 (12:32 +0200)
commit1ef1cf1f93345cbeb5ff52cbf00c6ee6fee1a47b
treefae98940bf37f8a446edae5741893ec6b22a9d38
parent9b87d4429c145ebb66895c7e053e8d53192180e2
efi_loader: loosen buffer parameter check in efi_file_read

When reading a directory, EFI_BUFFER_TOO_SMALL should be returned when
the supplied buffer is too small, so a use-case is to call
efi_file_read with *buffer_size=0 and buffer=NULL to obtain the needed
size before doing the actual read.

So move the buffer!=NULL check to after the buffer size has been checked.

This fix allows the Redhat shim fallback to run and e.g. Fedora 32 now
boots out of the box.

Signed-off-by: Stefan Sørensen <stefan.sorensen@spectralink.com>
Reviewed-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
lib/efi_loader/efi_file.c