diff --git a/src/process/windows/SDL_windowsprocess.c b/src/process/windows/SDL_windowsprocess.c index 989711a315..abfacc21b0 100644 --- a/src/process/windows/SDL_windowsprocess.c +++ b/src/process/windows/SDL_windowsprocess.c @@ -259,6 +259,8 @@ bool SDL_SYS_CreateProcessWithProperties(SDL_Process *process, SDL_PropertiesID return false; } process->internal = data; + data->process_information.hProcess = INVALID_HANDLE_VALUE; + data->process_information.hThread = INVALID_HANDLE_VALUE; creation_flags = CREATE_UNICODE_ENVIRONMENT; @@ -533,8 +535,14 @@ void SDL_SYS_DestroyProcess(SDL_Process *process) if (io) { SDL_CloseIO(io); } - CloseHandle(data->process_information.hThread); - CloseHandle(data->process_information.hProcess); + if (data) { + if (data->process_information.hThread != INVALID_HANDLE_VALUE) { + CloseHandle(data->process_information.hThread); + } + if (data->process_information.hProcess != INVALID_HANDLE_VALUE) { + CloseHandle(data->process_information.hProcess); + } + } SDL_free(data); }