From 3b92933ac6564a93e45ae77b36622f6db0a11212 Mon Sep 17 00:00:00 2001 From: Ozkan Sezer Date: Sun, 13 Dec 2020 17:37:50 +0300 Subject: [PATCH] SDL_LoadObject (windows, os/2): prevent crash if dll name is NULL. --- src/loadso/os2/SDL_sysloadso.c | 8 +++++++- src/loadso/windows/SDL_sysloadso.c | 10 +++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/src/loadso/os2/SDL_sysloadso.c b/src/loadso/os2/SDL_sysloadso.c index c44339329..ca9d2fd24 100644 --- a/src/loadso/os2/SDL_sysloadso.c +++ b/src/loadso/os2/SDL_sysloadso.c @@ -37,9 +37,15 @@ SDL_LoadObject(const char *sofile) { ULONG ulRC; HMODULE hModule; - PSZ pszModName = OS2_UTF8ToSys(sofile); CHAR acError[256]; + PSZ pszModName; + if (!sofile) { + SDL_SetError("NULL sofile"); + return NULL; + } + + pszModName = OS2_UTF8ToSys(sofile); ulRC = DosLoadModule(acError, sizeof(acError), pszModName, &hModule); SDL_free(pszModName); if (ulRC != NO_ERROR) { diff --git a/src/loadso/windows/SDL_sysloadso.c b/src/loadso/windows/SDL_sysloadso.c index 99e836021..a5e985201 100644 --- a/src/loadso/windows/SDL_sysloadso.c +++ b/src/loadso/windows/SDL_sysloadso.c @@ -32,7 +32,15 @@ void * SDL_LoadObject(const char *sofile) { - LPTSTR tstr = WIN_UTF8ToString(sofile); + LPTSTR tstr; + + if (!sofile) { + SDL_SetError("NULL sofile"); + return NULL; + } + + tstr = WIN_UTF8ToString(sofile); + #ifdef __WINRT__ /* WinRT only publically supports LoadPackagedLibrary() for loading .dll files. LoadLibrary() is a private API, and not available for apps