From: Hans Leidekker hans@codeweavers.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 2a57b2db456..90a7517b957 100644 --- a/dlls/odbccp32/odbccp32.c +++ b/dlls/odbccp32/odbccp32.c @@ -1678,7 +1678,7 @@ BOOL WINAPI SQLValidDSNW(LPCWSTR lpszDSN) clear_errors(); TRACE("%s\n", debugstr_w(lpszDSN));
- if(lstrlenW(lpszDSN) > SQL_MAX_DSN_LENGTH || wcspbrk(lpszDSN, L"[]{}(),;?*=!@\") != NULL) + if (!lpszDSN || lstrlenW(lpszDSN) > SQL_MAX_DSN_LENGTH || wcspbrk(lpszDSN, L"[]{}(),;?*=!@\")) { return FALSE; } @@ -1692,7 +1692,7 @@ BOOL WINAPI SQLValidDSN(LPCSTR lpszDSN) clear_errors(); TRACE("%s\n", debugstr_a(lpszDSN));
- if(strlen(lpszDSN) > SQL_MAX_DSN_LENGTH || strpbrk(lpszDSN, invalid) != NULL) + if (!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 759c6181100..81c66a44a24 100644 --- a/dlls/odbccp32/tests/misc.c +++ b/dlls/odbccp32/tests/misc.c @@ -745,6 +745,9 @@ static void test_SQLValidDSN(void) int i; BOOL ret;
+ ret = SQLValidDSN(NULL); + ok(!ret, "got %d\n", ret); + strcpy(str, "wine10"); for(i = 0; i < strlen(invalid); i++) { @@ -772,6 +775,9 @@ static void test_SQLValidDSNW(void) int i; BOOL ret;
+ ret = SQLValidDSNW(NULL); + ok(!ret, "got %d\n", ret); + lstrcpyW(str, L"wine10"); for (i = 0; i < lstrlenW(L"[]{}(),;?*=!@\"); i++) {