Fix some memory leaks.
authorHiroshi Inoue
Wed, 14 Mar 2001 09:10:04 +0000 (09:10 +0000)
committerHiroshi Inoue
Wed, 14 Mar 2001 09:10:04 +0000 (09:10 +0000)
src/interfaces/odbc/environ.c
src/interfaces/odbc/socket.c

index 6099ba4d1004758679110c319343b2155b37768c..fb8ed6869ae7b287bce241ff5681fe22fc2924e9 100644 (file)
@@ -425,6 +425,7 @@ char rv = 1;
        if (conns[lf] && conns[lf]->henv == self)
            rv = rv && CC_Destructor(conns[lf]);
    }
+   free(self);
 
    mylog("exit EN_Destructor: rv = %d\n", rv);
    return rv;
index 6b551792fe12f89fec2cfca6d696e54ac0349731..555f9bff4cc2d54040e55838306e9fa11289edf1 100644 (file)
@@ -58,11 +58,18 @@ SocketClass *rv;
 
        rv->buffer_in = (unsigned char *) malloc(globals.socket_buffersize);
        if ( ! rv->buffer_in)
+       {
+           free(rv);
            return NULL;
+       }
 
        rv->buffer_out = (unsigned char *) malloc(globals.socket_buffersize);
        if ( ! rv->buffer_out)
+       {
+           free(rv->buffer_in);
+           free(rv);
            return NULL;
+       }
        
         rv->errormsg = NULL;
         rv->errornumber = 0;