Changeset: 8c09c8b08bca for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8c09c8b08bca
Modified Files:
sql/backends/monet5/sql_upgrades.c
Branch: sqlfuncfix
Log Message:
Don't leak on error
diffs (70 lines):
diff --git a/sql/backends/monet5/sql_upgrades.c
b/sql/backends/monet5/sql_upgrades.c
--- a/sql/backends/monet5/sql_upgrades.c
+++ b/sql/backends/monet5/sql_upgrades.c
@@ -766,16 +766,16 @@ static str
sql_update_apr2019_sp2(Client c, mvc *sql, const char *prev_schema, bool
*systabfixed)
{
size_t bufsize = 1000, pos = 0;
- char *buf = GDKmalloc(bufsize), *err;
-
- if (buf == NULL)
+ char *buf = NULL, *err = NULL;
+
+ if (!*systabfixed &&
+ (err = sql_fix_system_tables(c, sql, prev_schema)) != NULL)
+ return err;
+ *systabfixed = true;
+
+ if ((buf = GDKmalloc(bufsize)) == NULL)
throw(SQL, __func__, SQLSTATE(HY013) MAL_MALLOC_FAIL);
- if (!*systabfixed) {
- sql_fix_system_tables(c, sql, prev_schema);
- *systabfixed = true;
- }
-
pos += snprintf(buf + pos, bufsize - pos, "set schema sys;\n");
/* 11_times.sql */
@@ -1238,15 +1238,15 @@ sql_update_jun2020(Client c, mvc *sql, c
{
sql_table *t;
size_t bufsize = 32768, pos = 0;
- char *err = NULL, *buf = GDKmalloc(bufsize);
+ char *err = NULL, *buf = NULL;
sql_schema *sys = mvc_bind_schema(sql, "sys");
if (!*systabfixed &&
- (err = sql_fix_system_tables(c, sql, prev_schema)) != NULL)
+ (err = sql_fix_system_tables(c, sql, prev_schema)) != NULL)
return err;
*systabfixed = true;
- if (buf == NULL)
+ if ((buf = GDKmalloc(bufsize)) == NULL)
throw(SQL, __func__, SQLSTATE(HY013) MAL_MALLOC_FAIL);
pos += snprintf(buf + pos, bufsize - pos,
@@ -2022,8 +2022,12 @@ sql_update_oscar(Client c, mvc *sql, con
BATiter bi = bat_iterator_nolock(b);
if (BATcount(b) > 0 && strcmp(BUNtail(bi, 0), "progress") == 0)
{
if (!*systabfixed &&
- (err = sql_fix_system_tables(c, sql,
prev_schema)) != NULL)
+ (err = sql_fix_system_tables(c, sql,
prev_schema)) != NULL) {
+ BBPunfix(b->batCacheid);
+ res_table_destroy(output);
+ GDKfree(buf);
return err;
+ }
*systabfixed = true;
pos = 0;
@@ -2178,7 +2182,7 @@ sql_update_oct2020(Client c, mvc *sql, c
if (BATcount(b) > 0) {
if (!*systabfixed &&
(err = sql_fix_system_tables(c, sql,
prev_schema)) != NULL)
- return err;
+ goto bailout;
*systabfixed = true;
pos = 0;
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list