From d78a4a308a56595a3024de4d5721004984c553a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Herm=C3=A8s=20B=C3=A9lusca-Ma=C3=AFto?= Date: Thu, 28 Sep 2023 12:50:49 +0200 Subject: [PATCH] [SETUPAPI] Add missing NULL parameter checks in SetupOpenInfFileW and SetupDiGetINFClassW. Based on PR #5673, ROSTESTS-388 Co-authored-by: Katayama Hirofumi MZ --- dll/win32/setupapi/parser.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/dll/win32/setupapi/parser.c b/dll/win32/setupapi/parser.c index 9e332724fbd..678c59b414b 100644 --- a/dll/win32/setupapi/parser.c +++ b/dll/win32/setupapi/parser.c @@ -1232,11 +1232,18 @@ HINF WINAPI SetupOpenInfFileW( PCWSTR name, PCWSTR class, DWORD style, UINT *err TRACE("%s %s %lx %p\n", debugstr_w(name), debugstr_w(class), style, error); +#ifdef __REACTOS__ if (style & ~(INF_STYLE_OLDNT | INF_STYLE_WIN4)) { SetLastError(ERROR_INVALID_PARAMETER); return (HINF)INVALID_HANDLE_VALUE; } + if (!name) + { + SetLastError(ERROR_INVALID_PARAMETER); + return (HINF)INVALID_HANDLE_VALUE; + } +#endif // __REACTOS__ if (wcschr( name, '\\' ) || wcschr( name, '/' )) { @@ -2329,6 +2336,12 @@ SetupDiGetINFClassW( TRACE("%s %p %p %ld %p\n", debugstr_w(InfName), ClassGuid, ClassName, ClassNameSize, RequiredSize); + if (!InfName || !ClassGuid || !ClassName || ClassNameSize == 0) + { + SetLastError(ERROR_INVALID_PARAMETER); + return FALSE; + } + /* Open .inf file */ hInf = SetupOpenInfFileW(InfName, NULL, INF_STYLE_WIN4, NULL); if (hInf == INVALID_HANDLE_VALUE)