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