diff --git a/dlls/setupapi/install.c b/dlls/setupapi/install.c index 1c8236a7d47..e216e8c4ef3 100644 --- a/dlls/setupapi/install.c +++ b/dlls/setupapi/install.c @@ -1640,6 +1640,7 @@ BOOL WINAPI SetupGetInfFileListW(PCWSTR dir, DWORD style, PWSTR buffer, ( 2 + dir_len + name_len) * sizeof( WCHAR )); if( !fullname ) { + FindClose( hdl ); HeapFree( GetProcessHeap(), 0, filter ); SetLastError( ERROR_NOT_ENOUGH_MEMORY ); return FALSE; diff --git a/dlls/setupapi/queue.c b/dlls/setupapi/queue.c index cd733a0897d..1855e99ddb7 100644 --- a/dlls/setupapi/queue.c +++ b/dlls/setupapi/queue.c @@ -1156,7 +1156,11 @@ BOOL WINAPI SetupInstallFileExW( HINF hinf, PINFCONTEXT inf_context, PCWSTR sour SetLastError( ERROR_NOT_ENOUGH_MEMORY ); return FALSE; } - if (!SetupGetStringFieldW( inf_context, 1, inf_source, len, NULL )) return FALSE; + if (!SetupGetStringFieldW( inf_context, 1, inf_source, len, NULL )) + { + HeapFree( GetProcessHeap(), 0, inf_source ); + return FALSE; + } source = inf_source; } else if (!source)