Changeset: 251770a80b1a for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=251770a80b1a
Modified Files:
        sql/backends/monet5/sql.c
        sql/backends/monet5/sql_cat.c
Branch: default
Log Message:

Fix a few leaks upon errors


diffs (119 lines):

diff --git a/sql/backends/monet5/sql.c b/sql/backends/monet5/sql.c
--- a/sql/backends/monet5/sql.c
+++ b/sql/backends/monet5/sql.c
@@ -2025,7 +2025,7 @@ mvc_export_table_wrap( Client cntxt, Mal
        tpe = BATdescriptor(tpeId);
        len = BATdescriptor(lenId);
        scale = BATdescriptor(scaleId);
-       if( msg || tbl == NULL || atr == NULL || tpe == NULL || len == NULL || 
scale == NULL)
+       if( tbl == NULL || atr == NULL || tpe == NULL || len == NULL || scale 
== NULL)
                goto wrapup_result_set1;
        /* mimick the old rsColumn approach; */
        itertbl = bat_iterator(tbl);
@@ -2047,6 +2047,9 @@ mvc_export_table_wrap( Client cntxt, Mal
                if( b)
                        BBPunfix(bid);
        }
+       if ( msg )
+               goto wrapup_result_set1;
+
        /* now select the file channel */
        if ( strcmp(filename,"stdout") == 0 )
                s= cntxt->fdout;
@@ -2190,6 +2193,7 @@ mvc_export_row_wrap( Client cntxt, MalBl
        l = strlen((char *) R);
        rsep = GDKmalloc(l + 1);
        if(rsep == 0){
+               GDKfree(tsep);
                msg = createException(SQL, "sql.resultSet", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                goto wrapup_result_set;
        }
@@ -2198,6 +2202,8 @@ mvc_export_row_wrap( Client cntxt, MalBl
        l = strlen((char *) S);
        ssep = GDKmalloc(l + 1);
        if(ssep == 0){
+               GDKfree(tsep);
+               GDKfree(rsep);
                msg = createException(SQL, "sql.resultSet", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                goto wrapup_result_set;
        }
@@ -2206,6 +2212,9 @@ mvc_export_row_wrap( Client cntxt, MalBl
        l = strlen((char *) N);
        ns = GDKmalloc(l + 1);
        if(ns == 0){
+               GDKfree(tsep);
+               GDKfree(rsep);
+               GDKfree(ssep);
                msg = createException(SQL, "sql.resultSet", SQLSTATE(HY001) 
MAL_MALLOC_FAIL);
                goto wrapup_result_set;
        }
@@ -3514,10 +3523,13 @@ sql_querylog_catalog(Client cntxt, MalBl
 {
        int i;
        BAT *t[8];
+       str msg;
 
        (void) cntxt;
        (void) mb;
-       QLOGcatalog(t);
+       msg = QLOGcatalog(t);
+       if( msg != MAL_SUCCEED)
+               return msg;
        for (i = 0; i < 8; i++) 
        if( t[i]){
                bat id = t[i]->batCacheid;
@@ -3534,10 +3546,13 @@ sql_querylog_calls(Client cntxt, MalBlkP
 {
        int i;
        BAT *t[10];
+       str msg;
 
        (void) cntxt;
        (void) mb;
-       QLOGcalls(t);
+       msg = QLOGcalls(t);
+       if( msg != MAL_SUCCEED)
+               return msg;
        for (i = 0; i < 9; i++) 
        if( t[i]){
                bat id = t[i]->batCacheid;
@@ -3556,8 +3571,7 @@ sql_querylog_empty(Client cntxt, MalBlkP
        (void) mb;
        (void) stk;
        (void) pci;
-       QLOGempty(NULL);
-       return MAL_SUCCEED;
+       return QLOGempty(NULL);
 }
 
 /* str sql_rowid(oid *rid, ptr v, str *sname, str *tname); */
diff --git a/sql/backends/monet5/sql_cat.c b/sql/backends/monet5/sql_cat.c
--- a/sql/backends/monet5/sql_cat.c
+++ b/sql/backends/monet5/sql_cat.c
@@ -796,7 +796,7 @@ SQLcreate_seq(Client cntxt, MalBlkPtr mb
 str
 SQLalter_seq(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) 
 {      mvc *sql = NULL;
-       str msg;
+       str msg = MAL_SUCCEED;
        str sname = *getArgReference_str(stk, pci, 1); 
        str seqname = *getArgReference_str(stk, pci, 2); 
        sql_sequence *s = *(sql_sequence **) getArgReference(stk, pci, 3);
@@ -815,7 +815,7 @@ SQLalter_seq(Client cntxt, MalBlkPtr mb,
 str
 SQLdrop_seq(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) 
 {      mvc *sql = NULL;
-       str msg;
+       str msg = MAL_SUCCEED;
        str sname = *getArgReference_str(stk, pci, 1); 
        str name = *getArgReference_str(stk, pci, 2);
 
@@ -827,7 +827,7 @@ SQLdrop_seq(Client cntxt, MalBlkPtr mb, 
 str
 SQLcreate_schema(Client cntxt, MalBlkPtr mb, MalStkPtr stk, InstrPtr pci) 
 {      mvc *sql = NULL;
-       str msg;
+       str msg = MAL_SUCCEED;
        str sname = *getArgReference_str(stk, pci, 1); 
        str name = SaveArgReference(stk, pci, 2);
        int auth_id;
_______________________________________________
checkin-list mailing list
checkin-list@monetdb.org
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to