Leak less resources

svn path=/trunk/; revision=53731
This commit is contained in:
Pierre Schweitzer 2011-09-18 11:00:12 +00:00
parent fef1e2d451
commit 81495a4e8f

View file

@ -1155,12 +1155,14 @@ ULONG CCabinet::ExtractFile(char* FileName)
if (Offset == INVALID_SET_FILE_POINTER) if (Offset == INVALID_SET_FILE_POINTER)
{ {
DPRINT(MIN_TRACE, ("SetFilePointer() failed, error code is %u.\n", (UINT)GetLastError())); DPRINT(MIN_TRACE, ("SetFilePointer() failed, error code is %u.\n", (UINT)GetLastError()));
CloseFile(DestFile);
return CAB_STATUS_INVALID_CAB; return CAB_STATUS_INVALID_CAB;
} }
#else #else
if (fseek(FileHandle, (off_t)File->DataBlock->AbsoluteOffset, SEEK_SET) != 0) if (fseek(FileHandle, (off_t)File->DataBlock->AbsoluteOffset, SEEK_SET) != 0)
{ {
DPRINT(MIN_TRACE, ("fseek() failed.\n")); DPRINT(MIN_TRACE, ("fseek() failed.\n"));
CloseFile(DestFile);
return CAB_STATUS_FAILURE; return CAB_STATUS_FAILURE;
} }
Offset = ftell(FileHandle); Offset = ftell(FileHandle);
@ -2039,6 +2041,7 @@ ULONG CCabinet::AddFile(char* FileName)
{ {
DPRINT(MIN_TRACE, ("Insufficient memory.\n")); DPRINT(MIN_TRACE, ("Insufficient memory.\n"));
FreeMemory(NewFileName); FreeMemory(NewFileName);
CloseFile(SrcFile);
return CAB_STATUS_NOMEMORY; return CAB_STATUS_NOMEMORY;
} }
@ -2051,6 +2054,7 @@ ULONG CCabinet::AddFile(char* FileName)
{ {
DPRINT(MIN_TRACE, ("Cannot read from file.\n")); DPRINT(MIN_TRACE, ("Cannot read from file.\n"));
FreeMemory(NewFileName); FreeMemory(NewFileName);
CloseFile(SrcFile);
return CAB_STATUS_CANNOT_READ; return CAB_STATUS_CANNOT_READ;
} }
@ -2058,6 +2062,7 @@ ULONG CCabinet::AddFile(char* FileName)
{ {
DPRINT(MIN_TRACE, ("Cannot read file times.\n")); DPRINT(MIN_TRACE, ("Cannot read file times.\n"));
FreeMemory(NewFileName); FreeMemory(NewFileName);
CloseFile(SrcFile);
return CAB_STATUS_CANNOT_READ; return CAB_STATUS_CANNOT_READ;
} }
@ -2065,6 +2070,7 @@ ULONG CCabinet::AddFile(char* FileName)
{ {
DPRINT(MIN_TRACE, ("Cannot read file attributes.\n")); DPRINT(MIN_TRACE, ("Cannot read file attributes.\n"));
FreeMemory(NewFileName); FreeMemory(NewFileName);
CloseFile(SrcFile);
return CAB_STATUS_CANNOT_READ; return CAB_STATUS_CANNOT_READ;
} }