- Fix a memory leak

svn path=/trunk/; revision=61652
This commit is contained in:
Thomas Faber 2014-01-17 16:07:32 +00:00
parent bc0a6e79fb
commit 20fe3bef9e

View file

@ -634,22 +634,26 @@ bool CCabinet::SetCabinetReservedFile(char* FileName)
{ {
FILEHANDLE FileHandle; FILEHANDLE FileHandle;
ULONG BytesRead; ULONG BytesRead;
char* ConvertedFileName;
ConvertedFileName = ConvertPath(FileName, true);
#if defined(_WIN32) #if defined(_WIN32)
FileHandle = CreateFile(ConvertPath(FileName, true), // Open this file FileHandle = CreateFile(ConvertedFileName, // Open this file
GENERIC_READ, // Open for reading GENERIC_READ, // Open for reading
FILE_SHARE_READ, // Share for reading FILE_SHARE_READ, // Share for reading
NULL, // No security NULL, // No security
OPEN_EXISTING, // Existing file only OPEN_EXISTING, // Existing file only
FILE_ATTRIBUTE_NORMAL, // Normal file FILE_ATTRIBUTE_NORMAL, // Normal file
NULL); // No attribute template NULL); // No attribute template
free(ConvertedFileName);
if (FileHandle == INVALID_HANDLE_VALUE) if (FileHandle == INVALID_HANDLE_VALUE)
{ {
DPRINT(MID_TRACE, ("Cannot open cabinet reserved file.\n")); DPRINT(MID_TRACE, ("Cannot open cabinet reserved file.\n"));
return false; return false;
} }
#else /* !_WIN32 */ #else /* !_WIN32 */
FileHandle = fopen(ConvertPath(FileName, true), "rb"); FileHandle = fopen(ConvertedFileName, "rb");
free(ConvertedFileName);
if (FileHandle == NULL) if (FileHandle == NULL)
{ {
DPRINT(MID_TRACE, ("Cannot open cabinet reserved file.\n")); DPRINT(MID_TRACE, ("Cannot open cabinet reserved file.\n"));