Changeset: 8f1c6d410860 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/8f1c6d410860
Modified Files:
sql/backends/monet5/sql.c
sql/backends/monet5/vaults/json/json.c
Branch: nested
Log Message:
Fixes mem leaks in JSON parser
diffs (32 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
@@ -5790,6 +5790,8 @@ insert_json_value(JSONterm *jt, sql_subt
} else {
msg = createException(SQL, "sql.insert_json_value",
"jsonv2local failed");
}
+ if (v->vtype == TYPE_str)
+ GDKfree(v->val.sval);
return msg;
}
diff --git a/sql/backends/monet5/vaults/json/json.c
b/sql/backends/monet5/vaults/json/json.c
--- a/sql/backends/monet5/vaults/json/json.c
+++ b/sql/backends/monet5/vaults/json/json.c
@@ -253,7 +253,7 @@ JSONread_json(Client cntxt, MalBlkPtr mb
} else
BBPreclaim(b);
} else {
- msg = jt->error;
+ msg = GDKstrdup(jt->error);
}
JSONfree(jt);
} else {
@@ -302,6 +302,7 @@ JSONread_nd_json(Client cntxt, MalBlkPtr
msg =
createException(SQL, "json.read_nd_json", "Invalid json object, JSONparse
failed!");
break;
}
+ JSONfree(jt);
tail = head + skip;
while (tail[0] == '\n') // multiple
newlines e.g. \n\n
tail ++;
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]