]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ShellPkg/Application/Shell/FileHandleWrappers.c
ShellPkg/Shell/FileHandleWrappers.c: Add check for MemFile->Buffer
[mirror_edk2.git] / ShellPkg / Application / Shell / FileHandleWrappers.c
index 587556c42495e945d79cac8492d0eb5ad6f62808..2d7bd7bec67e2cbcbd4e94a86757ddca7d700b7a 100644 (file)
@@ -1644,6 +1644,9 @@ FileInterfaceMemWrite(
     //\r
     if ((UINTN)(MemFile->Position + (*BufferSize)) > (UINTN)(MemFile->BufferSize)) {\r
       MemFile->Buffer = ReallocatePool((UINTN)(MemFile->BufferSize), (UINTN)(MemFile->BufferSize) + (*BufferSize) + MEM_WRITE_REALLOC_OVERHEAD, MemFile->Buffer);\r
+      if (MemFile->Buffer == NULL){\r
+        return EFI_OUT_OF_RESOURCES;\r
+      }\r
       MemFile->BufferSize += (*BufferSize) + MEM_WRITE_REALLOC_OVERHEAD;\r
     }\r
     CopyMem(((UINT8*)MemFile->Buffer) + MemFile->Position, Buffer, *BufferSize);\r
@@ -1661,6 +1664,10 @@ FileInterfaceMemWrite(
     AsciiSPrint(AsciiBuffer, *BufferSize, "%S", Buffer);\r
     if ((UINTN)(MemFile->Position + AsciiStrSize(AsciiBuffer)) > (UINTN)(MemFile->BufferSize)) {\r
       MemFile->Buffer = ReallocatePool((UINTN)(MemFile->BufferSize), (UINTN)(MemFile->BufferSize) + AsciiStrSize(AsciiBuffer) + MEM_WRITE_REALLOC_OVERHEAD, MemFile->Buffer);\r
+      if (MemFile->Buffer == NULL){\r
+        FreePool(AsciiBuffer);\r
+        return EFI_OUT_OF_RESOURCES;\r
+      }\r
       MemFile->BufferSize += AsciiStrSize(AsciiBuffer) + MEM_WRITE_REALLOC_OVERHEAD;\r
     }\r
     CopyMem(((UINT8*)MemFile->Buffer) + MemFile->Position, AsciiBuffer, AsciiStrSize(AsciiBuffer));\r