浏览代码

Initialize Status before calling GrowBuffer()

Status must be initialized before calling GrowBuffer() as it may
otherwise be uninitialized or set to EFI_BUFFER_TOO_SMALL by other
functions.

Signed-off-by: Gene Cumm <gene.cumm@gmail.com>
Signed-off-by: Nigel Croxon <nigel.croxon@hp.com>
Nigel Croxon 11 年之前
父节点
当前提交
ab54e2b40e
共有 2 个文件被更改,包括 5 次插入2 次删除
  1. 4 0
      gnu-efi-3.0/lib/hand.c
  2. 1 2
      gnu-efi-3.0/lib/misc.c

+ 4 - 0
gnu-efi-3.0/lib/hand.c

@@ -126,6 +126,7 @@ LibLocateHandleByDiskSignature (
     // Initialize for GrowBuffer loop
     //
 
+    Status = EFI_SUCCESS;
     BlockIoBuffer = NULL;
     BufferSize = 50 * sizeof(EFI_HANDLE);
 
@@ -339,6 +340,7 @@ LibFileInfo (
     // Initialize for GrowBuffer loop
     //
 
+    Status = EFI_SUCCESS;
     Buffer = NULL;
     BufferSize = SIZE_OF_EFI_FILE_INFO + 200;
 
@@ -374,6 +376,7 @@ LibFileSystemInfo (
     // Initialize for GrowBuffer loop
     //
 
+    Status = EFI_SUCCESS;
     Buffer = NULL;
     BufferSize = SIZE_OF_EFI_FILE_SYSTEM_INFO + 200;
 
@@ -408,6 +411,7 @@ LibFileSystemVolumeLabelInfo (
     // Initialize for GrowBuffer loop
     //
 
+    Status = EFI_SUCCESS;
     Buffer = NULL;
     BufferSize = SIZE_OF_EFI_FILE_SYSTEM_VOLUME_LABEL_INFO + 200;
 

+ 1 - 2
gnu-efi-3.0/lib/misc.c

@@ -165,8 +165,6 @@ Returns:
 
     if (!*Buffer && BufferSize) {
         *Status = EFI_BUFFER_TOO_SMALL;
-    } else {
-	*Status = EFI_SUCCESS;
     }
 
     //
@@ -218,6 +216,7 @@ LibMemoryMap (
     // Initialize for GrowBuffer loop
     //
 
+    Status = EFI_SUCCESS;
     Buffer = NULL;
     BufferSize = sizeof(EFI_MEMORY_DESCRIPTOR);