diff --git a/reactos/dll/cpl/desk/dibitmap.c b/reactos/dll/cpl/desk/dibitmap.c index 56a9255f802..b58b8b8e5eb 100644 --- a/reactos/dll/cpl/desk/dibitmap.c +++ b/reactos/dll/cpl/desk/dibitmap.c @@ -38,11 +38,15 @@ DibLoadImage(LPTSTR lpFilename) lpBitmap = HeapAlloc(GetProcessHeap(), 0, sizeof(DIBITMAP)); if (lpBitmap == NULL) + { + CloseHandle(hFile); return NULL; + } lpBitmap->header = HeapAlloc(GetProcessHeap(), 0, dwFileSize); if (lpBitmap->header == NULL) { + HeapFree(GetProcessHeap(), 0, lpBitmap); CloseHandle(hFile); return NULL; } @@ -56,6 +60,7 @@ DibLoadImage(LPTSTR lpFilename) (lpBitmap->header->bfSize != dwFileSize)) { HeapFree(GetProcessHeap(), 0, lpBitmap->header); + HeapFree(GetProcessHeap(), 0, lpBitmap); return NULL; }