Changeset: acf971c5233e for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=acf971c5233e
Modified Files:
MonetDB4/src/modules/contrib/array.mx
MonetDB4/src/modules/mnetcdf/mnetcdf.mx
MonetDB4/src/modules/plain/builtin.mx
MonetDB5/src/modules/mal/mal_io.mx
buildtools/Mx/Sys.c
pathfinder/compiler/mem/array.c
sql/src/storage/bat/bat_table.mx
sql/src/storage/bpm/bpm_table.mx
sql/src/storage/restrict/restrict_table.mx
Branch: Oct2010
Log Message:
va_start and va_copy must be accompanied by va_end.
Found by Coverity.
diffs (246 lines):
diff -r acfe93f09b39 -r acf971c5233e MonetDB4/src/modules/contrib/array.mx
--- a/MonetDB4/src/modules/contrib/array.mx Mon Dec 20 17:53:14 2010 +0100
+++ b/MonetDB4/src/modules/contrib/array.mx Tue Dec 21 13:16:04 2010 +0100
@@ -186,11 +186,11 @@
}
batptr[dims++] = tmp;
}
+ va_end(ap);
if (dims == 0) {
GDKerror("print_array: Error, no index bats provided.\n");
goto exit_err_none;
}
- va_end(ap);
#ifdef EXCESSIVE_DEBUGGING
fprintf(stderr, "[PRINT_ARRAY] Dims = %d\n", dims);
diff -r acfe93f09b39 -r acf971c5233e MonetDB4/src/modules/mnetcdf/mnetcdf.mx
--- a/MonetDB4/src/modules/mnetcdf/mnetcdf.mx Mon Dec 20 17:53:14 2010 +0100
+++ b/MonetDB4/src/modules/mnetcdf/mnetcdf.mx Tue Dec 21 13:16:04 2010 +0100
@@ -668,6 +668,7 @@
while ((tmp = va_arg(ap, BAT *)) != NULL) {
if (dims == NC_MAX_DIMS) {
GDKerror("dimensionality too high");
+ va_end(ap);
return GDK_FAIL;
}
bi[dims++].b = tmp;
@@ -873,6 +874,7 @@
dims = 0;
while ((tmp = va_arg(ap, int *)) != NULL) {
if (dims == NC_MAX_DIMS) {
+ va_end(ap);
GDKerror("dimensionality too high");
return GDK_FAIL;
}
diff -r acfe93f09b39 -r acf971c5233e MonetDB4/src/modules/plain/builtin.mx
--- a/MonetDB4/src/modules/plain/builtin.mx Mon Dec 20 17:53:14 2010 +0100
+++ b/MonetDB4/src/modules/plain/builtin.mx Tue Dec 21 13:16:04 2010 +0100
@@ -1221,6 +1221,7 @@
}
piv[nbats++] = b;
}
+ va_end(ap);
return CMDprint_bats(nbats, piv, *order);
}
@@ -1242,6 +1243,7 @@
}
piv[nbats++] = b;
} while ((b = va_arg(ap, BAT *)) != NULL);
+ va_end(ap);
return CMDprint_bats(nbats, piv, 0);
}
diff -r acfe93f09b39 -r acf971c5233e MonetDB5/src/modules/mal/mal_io.mx
--- a/MonetDB5/src/modules/mal/mal_io.mx Mon Dec 20 17:53:14 2010 +0100
+++ b/MonetDB5/src/modules/mal/mal_io.mx Tue Dec 21 13:16:04 2010 +0100
@@ -381,12 +381,12 @@
*res = GDKstrdup(format);
return MAL_SUCCEED;
}
- va_start(ap,format);
buf = dst = (str) GDKmalloc(size = 80);
if ( buf == NULL)
throw(MAL,"io.printf",MAL_MALLOC_FAIL);
*res = NULL;
+ va_start(ap,format);
for (cur = format; *cur; cur++) {
if (paramseen) {
char meta[100];
@@ -414,6 +414,7 @@
}
}
if ((p = va_arg(ap, char *)) == NULL) {
+ va_end(ap);
return_error(toofew_error);
}
type = ATOMstorage(va_arg(ap, int));
@@ -439,6 +440,7 @@
int ival;
if (dotseen) {
+ va_end(ap);
return_error(format_error);
} else if (type == TYPE_chr) {
ival = (int) *(chr *) p;
@@ -455,6 +457,7 @@
} else if (type == TYPE_int) {
ival = *(int *) p;
} else {
+ va_end(ap);
return_error(type_error);
}
@:sprintf(ival)@
@@ -465,6 +468,7 @@
lng lval;
if (dotseen) {
+ va_end(ap);
return_error(format_error);
}
largetypes:
@@ -485,6 +489,7 @@
} else if (type == TYPE_lng) {
lval = *(lng *) p;
} else {
+ va_end(ap);
return_error(type_error);
}
if (!extra) {
@@ -512,6 +517,7 @@
} else if (type == TYPE_dbl) {
dval = *(dbl *) p;
} else {
+ va_end(ap);
return_error(type_error);
}
width += (1 + prec);
@@ -524,8 +530,10 @@
int length;
if (extra) {
+ va_end(ap);
return_error(format_error);
} else if (type != TYPE_str) {
+ va_end(ap);
return_error(type_error);
}
length = strLen(p);
@@ -537,6 +545,7 @@
width = (size_t) length;
@:sprintf(p)@
} else {
+ va_end(ap);
return_error(format_error);
}
width = strlen(add);
diff -r acfe93f09b39 -r acf971c5233e buildtools/Mx/Sys.c
--- a/buildtools/Mx/Sys.c Mon Dec 20 17:53:14 2010 +0100
+++ b/buildtools/Mx/Sys.c Tue Dec 21 13:16:04 2010 +0100
@@ -42,7 +42,6 @@
if (mx_out & 1)
vfprintf(ofile, format, ap);
va_start(ap, format);
- va_start(ap, format);
if (ofile_body && (mx_out & 4))
vfprintf(ofile_body, format, ap);
va_end(ap);
diff -r acfe93f09b39 -r acf971c5233e pathfinder/compiler/mem/array.c
--- a/pathfinder/compiler/mem/array.c Mon Dec 20 17:53:14 2010 +0100
+++ b/pathfinder/compiler/mem/array.c Tue Dec 21 13:16:04 2010 +0100
@@ -260,10 +260,12 @@
*/
va_copy(tmp, mat);
while ((nchars = vsnprintf (try, len, fmt, tmp)) < 0) {
+ va_end(tmp);
len *= 2;
try = realloc(try, len);
va_copy(tmp, mat);
}
+ va_end(tmp);
free(try);
diff -r acfe93f09b39 -r acf971c5233e sql/src/storage/bat/bat_table.mx
--- a/sql/src/storage/bat/bat_table.mx Mon Dec 20 17:53:14 2010 +0100
+++ b/sql/src/storage/bat/bat_table.mx Tue Dec 21 13:16:04 2010 +0100
@@ -151,6 +151,7 @@
c = nc;
value = nv;
}
+ va_end(va);
b = full_column(c, d, s);
if (s)
bat_destroy(s);
@@ -221,6 +222,7 @@
store_funcs.append_col(tr, c, val, c->type.type->localtype);
cnt++;
}
+ va_end(va);
if (n) {
fprintf(stderr, "called table_insert(%s) with wrong number of
args (%d,%d)\n", t->base.name, list_length(t->columns.set), cnt);
assert(0);
@@ -318,6 +320,7 @@
key_value_low = nvl;
key_value_high = nvh;
}
+ va_end(va);
}
b = full_column(key, d, s);
if (s)
diff -r acfe93f09b39 -r acf971c5233e sql/src/storage/bpm/bpm_table.mx
--- a/sql/src/storage/bpm/bpm_table.mx Mon Dec 20 17:53:14 2010 +0100
+++ b/sql/src/storage/bpm/bpm_table.mx Tue Dec 21 13:16:04 2010 +0100
@@ -85,6 +85,7 @@
c = nc;
value = nv;
}
+ va_end(va);
b = full_column(c, d, s);
if (s)
bat_destroy(s);
@@ -155,6 +156,7 @@
store_funcs.append_col(tr, c, val, c->type.type->localtype);
cnt++;
}
+ va_end(va);
if (n) {
fprintf(stderr, "called table_insert(%s) with wrong number of
args (%d,%d)\n", t->base.name, list_length(t->columns.set), cnt);
assert(0);
@@ -252,6 +254,7 @@
key_value_low = nvl;
key_value_high = nvh;
}
+ va_end(va);
}
b = full_column(key, d, s);
if (s)
diff -r acfe93f09b39 -r acf971c5233e sql/src/storage/restrict/restrict_table.mx
--- a/sql/src/storage/restrict/restrict_table.mx Mon Dec 20 17:53:14
2010 +0100
+++ b/sql/src/storage/restrict/restrict_table.mx Tue Dec 21 13:16:04
2010 +0100
@@ -99,6 +99,7 @@
c = nc;
value = nv;
}
+ va_end(va);
b = full_column(c, d, s);
if (s)
bat_destroy(s);
@@ -169,6 +170,7 @@
store_funcs.append_col(tr, c, val, c->type.type->localtype);
cnt++;
}
+ va_end(va);
if (n) {
fprintf(stderr, "called table_insert(%s) with wrong number of
args (%d,%d)\n", t->base.name, list_length(t->columns.set), cnt);
assert(0);
@@ -219,6 +221,7 @@
key_value_low = nvl;
key_value_high = nvh;
}
+ va_end(va);
}
b = full_column(key, d, s);
if (s)
_______________________________________________
Checkin-list mailing list
[email protected]
http://mail.monetdb.org/mailman/listinfo/checkin-list