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
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list