From: Daniel Lehman dlehman25@gmail.com
--- dlls/odbc32/proxyodbc.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/odbc32/proxyodbc.c b/dlls/odbc32/proxyodbc.c index bbb0e1702ae..259e8c9f90f 100644 --- a/dlls/odbc32/proxyodbc.c +++ b/dlls/odbc32/proxyodbc.c @@ -4241,10 +4241,22 @@ static SQLRETURN parse_connect_string( struct attribute_list *list, const WCHAR attr->name[len] = 0;
q++; /* skip = */ - p = wcschr( q, ';' ); + if (*q == '{') + { + if (!(p = wcschr( ++q, '}' ))) + { + free_attribute( attr ); + free_attribute_list( list ); + return SQL_ERROR; + } + } + else + p = wcschr( q, ';' ); + if (p) { len = p - q; + if (*p == '}') p++; p++; } else