From: Alistair Leslie-Hughes <leslie_alistair(a)hotmail.com> --- dlls/odbccp32/odbccp32.c | 4 ++-- dlls/odbccp32/tests/misc.c | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/dlls/odbccp32/odbccp32.c b/dlls/odbccp32/odbccp32.c index dba24e4b673..ab745ef1bb7 100644 --- a/dlls/odbccp32/odbccp32.c +++ b/dlls/odbccp32/odbccp32.c @@ -1725,7 +1725,7 @@ BOOL WINAPI SQLValidDSNW(LPCWSTR lpszDSN) clear_errors(); TRACE("%s\n", debugstr_w(lpszDSN)); - if (!lpszDSN || lstrlenW(lpszDSN) > SQL_MAX_DSN_LENGTH || wcspbrk(lpszDSN, L"[]{}(),;?*=!@\\")) + if (!lpszDSN || !*lpszDSN || lstrlenW(lpszDSN) > SQL_MAX_DSN_LENGTH || wcspbrk(lpszDSN, L"[]{}(),;?*=!@\\")) { return FALSE; } @@ -1739,7 +1739,7 @@ BOOL WINAPI SQLValidDSN(LPCSTR lpszDSN) clear_errors(); TRACE("%s\n", debugstr_a(lpszDSN)); - if (!lpszDSN || strlen(lpszDSN) > SQL_MAX_DSN_LENGTH || strpbrk(lpszDSN, invalid)) + if (!lpszDSN || !*lpszDSN || strlen(lpszDSN) > SQL_MAX_DSN_LENGTH || strpbrk(lpszDSN, invalid)) { return FALSE; } diff --git a/dlls/odbccp32/tests/misc.c b/dlls/odbccp32/tests/misc.c index e9f879edda6..b94ed811337 100644 --- a/dlls/odbccp32/tests/misc.c +++ b/dlls/odbccp32/tests/misc.c @@ -816,6 +816,9 @@ static void test_SQLValidDSN(void) /* Max DSN name value */ ret = SQLValidDSN("12345678901234567890123456789012"); ok(ret, "got %d\n", ret); + + ret = SQLValidDSN(""); + ok(!ret, "got %d\n", ret); } static void test_SQLValidDSNW(void) @@ -843,6 +846,9 @@ static void test_SQLValidDSNW(void) ret = SQLValidDSNW(L"12345678901234567890123456789012"); ok(ret, "got %d\n", ret); + + ret = SQLValidDSNW(L""); + ok(!ret, "got %d\n", ret); } static void test_SQLConfigDataSource(void) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6333