Module: wine Branch: master Commit: 9d8ad0ef7fb0e7cdce0af6a521616e0ffef0e1e7 URL: https://gitlab.winehq.org/wine/wine/-/commit/9d8ad0ef7fb0e7cdce0af6a521616e0...
Author: Alistair Leslie-Hughes leslie_alistair@hotmail.com Date: Fri Jul 12 14:23:01 2024 +1000
odbc32: Handle NULL handles in SQLError/W.
---
dlls/odbc32/proxyodbc.c | 26 ++++++++++++++++++++------ 1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index 045738b45f7..46f96651b1d 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -1217,8 +1217,16 @@ SQLRETURN WINAPI SQLError(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle, S } else if ((env && env->win32_handle) || (con && con->win32_handle) || (stmt && stmt->win32_handle)) { - ret = env->win32_funcs->SQLError( env->win32_handle, con->win32_handle, stmt->win32_handle, SqlState, - NativeError, MessageText, BufferLength, TextLength ); + const struct win32_funcs *win32_funcs = NULL; + + if (env) win32_funcs = env->win32_funcs; + else if (con) win32_funcs = con->win32_funcs; + else if (stmt) win32_funcs = stmt->win32_funcs; + + ret = win32_funcs->SQLError( env ? env->win32_handle : NULL, + con ? con->win32_handle : NULL, + stmt ? stmt->win32_handle : NULL, + SqlState, NativeError, MessageText, BufferLength, TextLength ); }
if (SUCCESS( ret )) @@ -3781,10 +3789,16 @@ SQLRETURN WINAPI SQLErrorW(SQLHENV EnvironmentHandle, SQLHDBC ConnectionHandle, } else if ((env && env->win32_handle) || (con && con->win32_handle) || (stmt && stmt->win32_handle)) { - ret = env->win32_funcs->SQLErrorW( env ? env->win32_handle : NULL, - con ? con->win32_handle : NULL, - stmt ? stmt->win32_handle : NULL, - SqlState, NativeError, MessageText, BufferLength, TextLength ); + const struct win32_funcs *win32_funcs = NULL; + + if (env) win32_funcs = env->win32_funcs; + else if (con) win32_funcs = con->win32_funcs; + else if (stmt) win32_funcs = stmt->win32_funcs; + + ret = win32_funcs->SQLErrorW( env ? env->win32_handle : NULL, + con ? con->win32_handle : NULL, + stmt ? stmt->win32_handle : NULL, + SqlState, NativeError, MessageText, BufferLength, TextLength ); }
if (SUCCESS(ret ))