diff options
author | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2018-08-06 22:28:18 +0200 |
---|---|---|
committer | Alexander Graf <agraf@suse.de> | 2018-08-20 14:41:09 +0200 |
commit | fa995d0d9471b630d2d1942000d5a4f065c5cdd5 (patch) | |
tree | 1b538aa8b3c8af56829df3031e128bd937ab1e96 /lib | |
parent | 3748ed908fd478b36bf698839632b2514c450513 (diff) | |
download | u-boot-fa995d0d9471b630d2d1942000d5a4f065c5cdd5.zip u-boot-fa995d0d9471b630d2d1942000d5a4f065c5cdd5.tar.gz u-boot-fa995d0d9471b630d2d1942000d5a4f065c5cdd5.tar.bz2 |
efi_loader: avoid NULL dereference in efi_get_memory_map()
We should only dereference parameter memory_map_size after checking that
it is valid.
Fixes: 8e835554b36b ("efi_loader: check parameters of GetMemoryMap")
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Signed-off-by: Alexander Graf <agraf@suse.de>
Diffstat (limited to 'lib')
-rw-r--r-- | lib/efi_loader/efi_memory.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/efi_loader/efi_memory.c b/lib/efi_loader/efi_memory.c index 4b6269f..3ee1079 100644 --- a/lib/efi_loader/efi_memory.c +++ b/lib/efi_loader/efi_memory.c @@ -457,11 +457,13 @@ efi_status_t efi_get_memory_map(efi_uintn_t *memory_map_size, efi_uintn_t map_size = 0; int map_entries = 0; struct list_head *lhandle; - efi_uintn_t provided_map_size = *memory_map_size; + efi_uintn_t provided_map_size; if (!memory_map_size) return EFI_INVALID_PARAMETER; + provided_map_size = *memory_map_size; + list_for_each(lhandle, &efi_mem) map_entries++; |