return Status;\r
}\r
\r
- if (FileBuffer == NULL) {\r
- return EFI_OUT_OF_RESOURCES;\r
- }\r
-\r
if (InputLength == 0) {\r
- free (FileBuffer);\r
+ if (FileBuffer != NULL) {\r
+ free (FileBuffer);\r
+ }\r
Error (NULL, 0, 2000, "Invalid parameter", "the size of input file %s can't be zero", InputFileName);\r
return EFI_NOT_FOUND;\r
}\r
\r
+ //\r
+ // InputLength != 0, but FileBuffer == NULL means out of resources.\r
+ //\r
+ if (FileBuffer == NULL) {\r
+ Error (NULL, 0, 4001, "Resource", "memory cannot be allcoated");\r
+ return EFI_OUT_OF_RESOURCES;\r
+ }\r
+\r
//\r
// Now data is in FileBuffer + Offset\r
//\r