|
@@ -407,6 +407,9 @@ efi_status_t efi_get_memory_map(unsigned long *memory_map_size,
|
|
|
|
|
|
map_size = map_entries * sizeof(struct efi_mem_desc);
|
|
|
|
|
|
+ if (provided_map_size < map_size)
|
|
|
+ return EFI_BUFFER_TOO_SMALL;
|
|
|
+
|
|
|
*memory_map_size = map_size;
|
|
|
|
|
|
if (descriptor_size)
|
|
@@ -415,9 +418,6 @@ efi_status_t efi_get_memory_map(unsigned long *memory_map_size,
|
|
|
if (descriptor_version)
|
|
|
*descriptor_version = EFI_MEMORY_DESCRIPTOR_VERSION;
|
|
|
|
|
|
- if (provided_map_size < map_size)
|
|
|
- return EFI_BUFFER_TOO_SMALL;
|
|
|
-
|
|
|
/* Copy list into array */
|
|
|
if (memory_map) {
|
|
|
/* Return the list in ascending order */
|