Changeset: 819c64064b73 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=819c64064b73
Modified Files:
sql/server/rel_schema.c
Branch: Jul2017
Log Message:
Use GDKmalloc and friends; cleanup after realloc failure.
diffs (61 lines):
diff --git a/sql/server/rel_schema.c b/sql/server/rel_schema.c
--- a/sql/server/rel_schema.c
+++ b/sql/server/rel_schema.c
@@ -227,8 +227,8 @@ table_constraint_name(symbol *s, sql_tab
slen = strlen(suffix);
while (len + slen >= buflen)
buflen += BUFSIZ;
- buf = malloc(buflen);
- if(!buf) {
+ buf = GDKmalloc(buflen);
+ if (!buf) {
return NULL;
}
strcpy(buf, t->base.name);
@@ -237,11 +237,14 @@ table_constraint_name(symbol *s, sql_tab
for (; nms; nms = nms->next) {
slen = strlen(nms->data.sval);
while (len + slen + 1 >= buflen) {
+ char *nbuf;
buflen += BUFSIZ;
- buf = realloc(buf, buflen);
- if(!buf) {
+ nbuf = GDKrealloc(buf, buflen);
+ if (!nbuf) {
+ GDKfree(buf);
return NULL;
}
+ buf = nbuf;
}
snprintf(buf + len, buflen - len, "_%s", nms->data.sval);
len += slen + 1;
@@ -250,11 +253,14 @@ table_constraint_name(symbol *s, sql_tab
/* add suffix */
slen = strlen(suffix);
while (len + slen >= buflen) {
+ char *nbuf;
buflen += BUFSIZ;
- buf = realloc(buf, buflen);
- if(!buf) {
+ nbuf = GDKrealloc(buf, buflen);
+ if (!nbuf) {
+ GDKfree(buf);
return NULL;
}
+ buf = nbuf;
}
snprintf(buf + len, buflen - len, "%s", suffix);
@@ -622,9 +628,11 @@ table_constraint(mvc *sql, symbol *s, sq
if (!opt_name)
opt_name = table_constraint_name(sym, t);
+ if (opt_name == NULL)
+ return SQL_ERR;
res = table_constraint_type(sql, opt_name, sym, ss, t);
if (opt_name != l->h->data.sval)
- free(opt_name);
+ GDKfree(opt_name);
}
if (res != SQL_OK) {
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list