Changeset: f0b29a97df1b for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/f0b29a97df1b
Modified Files:
gdk/gdk_bbp.c
gdk/gdk_logger.c
gdk/gdk_select.c
gdk/gdk_string.c
monetdb5/mal/mal_interpreter.c
tools/merovingian/daemon/argvcmds.c
Branch: Jul2021
Log Message:
Fixing some problems found by Coverity.
diffs (112 lines):
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1729,6 +1729,7 @@ BBPdir_last(int n, char *buf, size_t buf
}
if (fclose(nbbpf) == EOF) {
GDKsyserror("Closing BBP.dir file failed\n");
+ nbbpf = NULL; /* can't close again */
goto bailout;
}
@@ -2586,7 +2587,8 @@ decref(bat i, bool logical, bool release
if (b->tvheap)
b->tvheap->dirty = true;
}
- farmid = b->theap->farmid;
+ if (b->theap)
+ farmid = b->theap->farmid;
MT_lock_unset(&b->theaplock);
}
diff --git a/gdk/gdk_logger.c b/gdk/gdk_logger.c
--- a/gdk/gdk_logger.c
+++ b/gdk/gdk_logger.c
@@ -985,13 +985,14 @@ logger_create_types_file(logger *lg, con
&& fsync(fileno(fp)) < 0
#endif
)) {
+ GDKsyserror("flushing log file %s failed", filename);
+ fclose(fp);
MT_remove(filename);
- GDKerror("flushing log file %s failed", filename);
return GDK_FAIL;
}
if (fclose(fp) < 0) {
+ GDKsyserror("closing log file %s failed", filename);
MT_remove(filename);
- GDKerror("closing log file %s failed", filename);
return GDK_FAIL;
}
return GDK_SUCCEED;
diff --git a/gdk/gdk_select.c b/gdk/gdk_select.c
--- a/gdk/gdk_select.c
+++ b/gdk/gdk_select.c
@@ -1893,8 +1893,11 @@ BATselect(BAT *b, BAT *s, const void *tl
estimate = MIN(estimate, maximum);
bn = COLnew(0, TYPE_oid, estimate, TRANSIENT);
- if (bn == NULL)
+ if (bn == NULL) {
+ if (havehash)
+ MT_rwlock_rdunlock(&b->thashlock);
return NULL;
+ }
BATiter bi = bat_iterator(b);
if (wanthash) {
diff --git a/gdk/gdk_string.c b/gdk/gdk_string.c
--- a/gdk/gdk_string.c
+++ b/gdk/gdk_string.c
@@ -778,6 +778,13 @@ concat_strings(BAT **bnp, ValPtr pt, BAT
assert((bnp == NULL) != (pt == NULL));
/* if pt not NULL, only a single group allowed */
assert(pt == NULL || ngrp == 1);
+
+ bi = bat_iterator(b);
+ if (sep)
+ bis = bat_iterator(sep);
+ else
+ separator_length = strlen(separator);
+
if (bnp) {
if ((bn = COLnew(min, TYPE_str, ngrp, TRANSIENT)) == NULL) {
rres = GDK_FAIL;
@@ -786,12 +793,6 @@ concat_strings(BAT **bnp, ValPtr pt, BAT
*bnp = bn;
}
- bi = bat_iterator(b);
- if (sep)
- bis = bat_iterator(sep);
- else
- separator_length = strlen(separator);
-
if (ngrp == 1) {
size_t offset = 0, single_length = 0;
bool empty = true;
diff --git a/monetdb5/mal/mal_interpreter.c b/monetdb5/mal/mal_interpreter.c
--- a/monetdb5/mal/mal_interpreter.c
+++ b/monetdb5/mal/mal_interpreter.c
@@ -834,7 +834,8 @@ str runMALsequence(Client cntxt, MalBlkP
lhs = &backup[i];
if (BATatoms[lhs->vtype].atomUnfix &&
(*BATatoms[lhs->vtype].atomUnfix)(VALget(lhs)) != GDK_SUCCEED) {
- ret = createException(MAL,
"mal.propertyCheck", GDK_EXCEPTION);
+ if (ret == MAL_SUCCEED)
+ ret = createException(MAL,
"mal.propertyCheck", GDK_EXCEPTION);
}
if (ATOMextern(lhs->vtype) &&
lhs->val.pval &&
diff --git a/tools/merovingian/daemon/argvcmds.c
b/tools/merovingian/daemon/argvcmds.c
--- a/tools/merovingian/daemon/argvcmds.c
+++ b/tools/merovingian/daemon/argvcmds.c
@@ -393,7 +393,7 @@ command_set(confkeyval *ckv, int argc, c
if (strcmp(p + 1, MONETDB5_PASSWDHASH) != 0) {
fprintf(stderr, "set: passphrase hash
'%s' incompatible, "
"expected '%s'\n",
- h, MONETDB5_PASSWDHASH);
+ p + 1,
MONETDB5_PASSWDHASH);
return(1);
}
*q = '}';
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list