[freetds] tdsdump SIGSEGV with mt apps

liam at inodes.org liam at inodes.org
Tue Apr 12 02:54:29 EDT 2005


Hi,

Unfortunately, in a multi-threaded application, TDSDUMP breaks
and causes a SIGSEGV (as g_dumpfile is closed/opened by other
threads concurrently).

Please see the below patch that works around this problem. I'm not 
sure why it calls tdsdump_close() to start with?

The patch is against freetds-0.64.dev.20050411.

Thanks.

--- util.c      2005-03-12 22:47:37.000000000 +1100
+++ util.c.new  2005-04-12 16:40:44.000000000 +1000
@@ -242,6 +242,10 @@
 {
        int result;             /* really should be a boolean, not an
int */
 
+       if (g_dumpfile != NULL) {
+               return 1;
+       }
+
        tdsdump_close();
        if (filename == NULL || filename[0] == '\0') {
                return 1;




More information about the FreeTDS mailing list