Modified:
trunk/ChangeLog
trunk/setup/ConfigDSN.c
trunk/setup/MYODBCSetupDataSourceConfig.cpp
trunk/setup/MYODBCSetupDataSourceDialog.cpp
trunk/setup/MYODBCSetupDriverConnectPrompt.cpp
trunk/util/MYODBCUtil.h
trunk/util/MYODBCUtilClearDataSource.c
trunk/util/MYODBCUtilReadDataSource.c
Log:
Fixed bad use of memory related to setup/util/GUI. (Bug#27315)
Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog 2007-07-10 06:01:46 UTC (rev 556)
+++ trunk/ChangeLog 2007-07-10 16:23:07 UTC (rev 557)
@@ -27,6 +27,7 @@
* Fixed error handling of OOM and bad connections in catalog functions.
This might raise errors in code paths that had ignored them in the past.
Gathered the logic for internal result sets into one place. (Bug #26934)
+ * Fixed bad use of memory related to setup/util/GUI. (Bug #27315)
----
Modified: trunk/setup/ConfigDSN.c
===================================================================
--- trunk/setup/ConfigDSN.c 2007-07-10 06:01:46 UTC (rev 556)
+++ trunk/setup/ConfigDSN.c 2007-07-10 16:23:07 UTC (rev 557)
@@ -83,7 +83,7 @@
goto exitConfigDSN;
}
- pDataSource->pszDRIVER = (char *)strdup( pszDriver );
+ pDataSource->pszDRIVER = (char *)_global_strdup( pszDriver );
switch ( nRequest )
{
Modified: trunk/setup/MYODBCSetupDataSourceConfig.cpp
===================================================================
--- trunk/setup/MYODBCSetupDataSourceConfig.cpp 2007-07-10 06:01:46 UTC (rev 556)
+++ trunk/setup/MYODBCSetupDataSourceConfig.cpp 2007-07-10 16:23:07 UTC (rev 557)
@@ -63,7 +63,7 @@
{
int argc = 1;
char * argv[] = { pszAppName, NULL };
- static QApplication app( argc, argv );
+ QApplication app( argc, argv );
// MYODBCSetupDataSourceDialog *pdialogDataSource = new
MYODBCSetupDataSourceDialog( 0, pDataSource );
//
Modified: trunk/setup/MYODBCSetupDataSourceDialog.cpp
===================================================================
--- trunk/setup/MYODBCSetupDataSourceDialog.cpp 2007-07-10 06:01:46 UTC (rev 556)
+++ trunk/setup/MYODBCSetupDataSourceDialog.cpp 2007-07-10 16:23:07 UTC (rev 557)
@@ -269,7 +269,7 @@
if ( nFlags > 0 )
{
- pDataSource->pszOPTION = (char*)malloc( 50 );
+ pDataSource->pszOPTION = (char*)_global_alloc(50);
sprintf( pDataSource->pszOPTION, "%d", nFlags );
}
}
Modified: trunk/setup/MYODBCSetupDriverConnectPrompt.cpp
===================================================================
--- trunk/setup/MYODBCSetupDriverConnectPrompt.cpp 2007-07-10 06:01:46 UTC (rev 556)
+++ trunk/setup/MYODBCSetupDriverConnectPrompt.cpp 2007-07-10 16:23:07 UTC (rev 557)
@@ -67,7 +67,7 @@
// METHOD 2 (tested to work on XP)
int argc = 1;
char * argv[] = { pszAppName, NULL };
- static QApplication app( argc, argv );
+ QApplication app( argc, argv );
// We are most likely to come in this route as caller is unlikely to have a qApp
*/
MYODBCSetupDataSourceDialog dialogDataSource( NULL, hDBC, pDataSource );
Modified: trunk/util/MYODBCUtil.h
===================================================================
--- trunk/util/MYODBCUtil.h 2007-07-10 06:01:46 UTC (rev 556)
+++ trunk/util/MYODBCUtil.h 2007-07-10 16:23:07 UTC (rev 557)
@@ -230,6 +230,7 @@
char *strnglobaldup( const char *s, size_t n);
# define _global_strdup(s) strglobaldup(s)
# define _global_strndup(s, n) strnglobaldup(s, n)
+# define _global_alloc(n) GlobalAlloc(GMEM_FIXED, (n))
# define _global_free(p) GlobalFree(p)
#else
# define _global_strdup(s) strdup(s)
@@ -240,6 +241,7 @@
char *myodbc_strndup( const char *s, size_t n );
# define _global_strndup(s, n) myodbc_strndup(s, n)
# endif
+# define _global_alloc malloc
# define _global_free(p) free(p)
#endif
Modified: trunk/util/MYODBCUtilClearDataSource.c
===================================================================
--- trunk/util/MYODBCUtilClearDataSource.c 2007-07-10 06:01:46 UTC (rev 556)
+++ trunk/util/MYODBCUtilClearDataSource.c 2007-07-10 16:23:07 UTC (rev 557)
@@ -51,7 +51,7 @@
if ( pDataSource->pszOPTION )
{
_global_free( pDataSource->pszOPTION );
- pDataSource->pszDSN = NULL;
+ pDataSource->pszOPTION = NULL;
}
if ( pDataSource->pszPASSWORD )
{
Modified: trunk/util/MYODBCUtilReadDataSource.c
===================================================================
--- trunk/util/MYODBCUtilReadDataSource.c 2007-07-10 06:01:46 UTC (rev 556)
+++ trunk/util/MYODBCUtilReadDataSource.c 2007-07-10 16:23:07 UTC (rev 557)
@@ -302,7 +302,7 @@
Some people have reported that the friendly driver name is never found so...
*/
if ( !pDataSource->pszDRIVER )
- pDataSource->pszDRIVER = MYODBCINST_DRIVER_NAME;
+ pDataSource->pszDRIVER = _global_strdup(MYODBCINST_DRIVER_NAME);
#endif
#if defined(WIN32)
| Thread |
|---|
| • Connector/ODBC 3.51 commit: r557 - in trunk: . setup util | jbalint | 10 Jul |