Changeset: fbd1943322c2 for MonetDB
URL: http://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=fbd1943322c2
Modified Files:
common/stream/stream.c
monetdb5/extras/sphinx/sphinx.c
monetdb5/mal/mal_atom.c
monetdb5/mal/mal_builder.c
monetdb5/mal/mal_linker.c
monetdb5/mal/mal_runtime.c
monetdb5/modules/kernel/aggr.c
monetdb5/modules/kernel/array.c
monetdb5/modules/mal/cluster.c
monetdb5/modules/mal/mat.c
monetdb5/modules/mal/pcre.c
monetdb5/optimizer/opt_mergetable.c
monetdb5/optimizer/opt_multiplex.c
monetdb5/optimizer/opt_pushselect.c
sql/server/rel_exp.c
tools/merovingian/client/monetdb.c
tools/merovingian/daemon/controlrunner.c
tools/merovingian/daemon/merovingian.c
Branch: default
Log Message:
Merge with Jan2014 branch.
diffs (282 lines):
diff --git a/common/stream/stream.c b/common/stream/stream.c
--- a/common/stream/stream.c
+++ b/common/stream/stream.c
@@ -3442,7 +3442,7 @@ wbs_write(stream *s, const void *buf, si
size_t nbytes, reqsize = cnt * elmsize, todo = reqsize;
wbs = (wbs_stream *) s->stream_data.p;
- if (wbs == NULL || wbs->buf == NULL)
+ if (wbs == NULL)
return -1;
while (todo > 0) {
int flush = 1;
diff --git a/monetdb5/extras/sphinx/sphinx.c b/monetdb5/extras/sphinx/sphinx.c
--- a/monetdb5/extras/sphinx/sphinx.c
+++ b/monetdb5/extras/sphinx/sphinx.c
@@ -78,7 +78,7 @@ sphinx_searchIndexLimit(BAT **ret, /* pu
str
SPHINXsearchIndexLimit(int *ret, str *query, str *index, int *limit)
{
- BAT *b= NULL;
+ BAT *b = NULL;
str msg = sphinx_searchIndexLimit(&b, *query, *index, *limit);
if (msg) {
diff --git a/monetdb5/mal/mal_atom.c b/monetdb5/mal/mal_atom.c
--- a/monetdb5/mal/mal_atom.c
+++ b/monetdb5/mal/mal_atom.c
@@ -55,7 +55,7 @@ int malAtomProperty(MalBlkPtr mb, InstrP
assert(pci != 0);
name = getFunctionId(pci);
tpe = getTypeIndex(getModuleId(pci), (int)strlen(getModuleId(pci)),
TYPE_any);
- if (tpe < 0 || tpe >= MAXATOMS)
+ if (tpe < 0 || tpe >= GDKatomcnt)
return 0;
assert(pci->fcn != NULL);
switch (name[0]) {
@@ -226,7 +226,7 @@ int malAtomSize(int size, int align, cha
void showAtoms(stream *fd)
{
int i;
- for (i = 0; i < MAXATOMS && BATatoms[i].name[0]; i++) {
+ for (i = 0; i< GDKatomcnt && BATatoms[i].name[0]; i++) {
mnstr_printf(fd, "%s", BATatoms[i].name);
if (BATatoms[i + 1].name[0]) mnstr_printf(fd, ",");
}
diff --git a/monetdb5/mal/mal_builder.c b/monetdb5/mal/mal_builder.c
--- a/monetdb5/mal/mal_builder.c
+++ b/monetdb5/mal/mal_builder.c
@@ -437,6 +437,8 @@ pushNilType(MalBlkPtr mb, InstrPtr q, ch
if (q == NULL)
return NULL;
idx= getTypeIndex(tpe, -1, TYPE_any);
+ if( idx < 0)
+ return NULL;
cst.vtype=TYPE_void;
cst.val.oval= oid_nil;
cst.len = 0;
diff --git a/monetdb5/mal/mal_linker.c b/monetdb5/mal/mal_linker.c
--- a/monetdb5/mal/mal_linker.c
+++ b/monetdb5/mal/mal_linker.c
@@ -105,12 +105,11 @@ getAddress(stream *out, str filename, st
if( adr != NULL)
return adr; /* found it */
}
- if (!silent){
- if ( dl)
- dlclose(dl);
+ if (!silent)
showException(out, MAL,"MAL.getAddress", "address of '%s.%s'
not found",
(modnme?modnme:"<unknown>"), fcnname);
- }
+ if ( dl)
+ dlclose(dl);
return NULL;
}
/*
diff --git a/monetdb5/modules/kernel/aggr.c b/monetdb5/modules/kernel/aggr.c
--- a/monetdb5/modules/kernel/aggr.c
+++ b/monetdb5/modules/kernel/aggr.c
@@ -1211,7 +1211,13 @@ AGGRsubmaxcand_val(bat *retval, bat *bid
0, TYPE_oid, BATgroupmax,
NULL, "aggr.submax")) != MAL_SUCCEED)
return res;
b = BATdescriptor(*bid);
+ if ( b == NULL)
+ throw(MAL,"aggr.max",RUNTIME_OBJECT_MISSING);
a = BATdescriptor(ret);
+ if ( a == NULL){
+ BBPreleaseref(b->batCacheid);
+ throw(MAL,"aggr.max",RUNTIME_OBJECT_MISSING);
+ }
r = BATproject(a, b);
BBPreleaseref(b->batCacheid);
BBPreleaseref(a->batCacheid);
diff --git a/monetdb5/modules/kernel/array.c b/monetdb5/modules/kernel/array.c
--- a/monetdb5/modules/kernel/array.c
+++ b/monetdb5/modules/kernel/array.c
@@ -98,6 +98,10 @@ grid_int(BAT **out, int *groups, int *gr
fprintf(stderr, "[grid] (%d,%d,%d,%d)", i, n, r, o);
#endif
+ if (out == NULL) {
+ GDKerror("grid: NULL BAT reference\n");
+ return GDK_FAIL;
+ }
new_bat(*out, (i * (n - o) * r), int);
if (out == NULL) {
GDKerror("grid: cannot create the bat (%d BUNs)\n", (i * (n -
o) * r));
@@ -174,6 +178,10 @@ grid_lng(BAT **out, lng *groups, lng *gr
fprintf(stderr, "[grid] (%d,%d,%d,%d)", i, n, r, o);
#endif
+ if (out == NULL) {
+ GDKerror("grid: NULL BAT reference\n");
+ return GDK_FAIL;
+ }
new_bat(*out, (i * (n - o) * r), lng);
if (out == NULL) {
GDKerror("grid: cannot create the bat (" LLFMT " BUNs)\n", (i *
(n - o) * r));
diff --git a/monetdb5/modules/mal/cluster.c b/monetdb5/modules/mal/cluster.c
--- a/monetdb5/modules/mal/cluster.c
+++ b/monetdb5/modules/mal/cluster.c
@@ -1242,8 +1242,8 @@ CLS_create2_bte( bat *rpsum, bat *rcmap,
BBPunfix(*B);
BBPkeepref(*rpsum = psum->batCacheid);
BBPkeepref(*rcmap = cmap->batCacheid);
- psum = BATsetaccess(psum, BAT_READ);
- cmap = BATsetaccess(cmap, BAT_READ);
+ (void) BATsetaccess(psum, BAT_READ);
+ (void) BATsetaccess(cmap, BAT_READ);
return MAL_SUCCEED;
}
diff --git a/monetdb5/modules/mal/mat.c b/monetdb5/modules/mal/mat.c
--- a/monetdb5/modules/mal/mat.c
+++ b/monetdb5/modules/mal/mat.c
@@ -428,8 +428,13 @@ MATmergepack(Client cntxt, MalBlkPtr mb,
}
bn = BATnew(TYPE_void, TYPE_oid, cap);
- if (bn == NULL)
+ if (bn == NULL){
+ GDKfree(bats);
+ GDKfree(o_src);
+ GDKfree(o_end);
throw(MAL, "mat.pack", MAL_MALLOC_FAIL);
+ }
+
if ( cap == 0){
BATseqbase(bn, 0);
BATseqbase(BATmirror(bn), 0);
diff --git a/monetdb5/modules/mal/pcre.c b/monetdb5/modules/mal/pcre.c
--- a/monetdb5/modules/mal/pcre.c
+++ b/monetdb5/modules/mal/pcre.c
@@ -1705,6 +1705,12 @@ PCRElike_join(int *l, int *r, int *b, in
}
tr = BATdescriptor(r);
+ if ( tr == NULL) {
+ BBPreleaseref(B->batCacheid);
+ BBPreleaseref(Bpat->batCacheid);
+ BBPreleaseref(j->batCacheid);
+ throw(MAL,"pcre",RUNTIME_OBJECT_MISSING);
+ }
x = BATconst(tr, TYPE_oid, BUNhead(pati, p));
BATins(j, x, TRUE);
BBPreleaseref(tr->batCacheid);
diff --git a/monetdb5/optimizer/opt_mergetable.c
b/monetdb5/optimizer/opt_mergetable.c
--- a/monetdb5/optimizer/opt_mergetable.c
+++ b/monetdb5/optimizer/opt_mergetable.c
@@ -711,6 +711,7 @@ mat_aggr(MalBlkPtr mb, InstrPtr p, mat_t
pushInstruction(mb, s);
r = s;
+/* DEAD CODE FOUND BY COVERITY
if (isAvg) {
s = newInstruction(mb,ASSIGNsymbol);
setModuleId(s, algebraRef);
@@ -720,6 +721,7 @@ mat_aggr(MalBlkPtr mb, InstrPtr p, mat_t
pushInstruction(mb, s);
u = s;
}
+*/
}
/* for avg we do sum (avg*(count/sumcount) ) */
diff --git a/monetdb5/optimizer/opt_multiplex.c
b/monetdb5/optimizer/opt_multiplex.c
--- a/monetdb5/optimizer/opt_multiplex.c
+++ b/monetdb5/optimizer/opt_multiplex.c
@@ -109,7 +109,7 @@ OPTexpandMultiplex(Client cntxt, MalBlkP
getHeadType(getVarType(mb,iter))));
q = newFcnCall(mb, batRef, reverseRef);
getArg(q, 0) = x;
- q = pushArgument(mb, q, iter);
+ (void) pushArgument(mb, q, iter);
/* resB := new(refBat) */
q = newFcnCall(mb, batRef, newRef);
diff --git a/monetdb5/optimizer/opt_pushselect.c
b/monetdb5/optimizer/opt_pushselect.c
--- a/monetdb5/optimizer/opt_pushselect.c
+++ b/monetdb5/optimizer/opt_pushselect.c
@@ -385,7 +385,7 @@ OPTpushselectImplementation(Client cntxt
InstrPtr q = newAssignment(mb);
getArg(q, 0) = getArg(p, 0);
- q = pushArgument(mb, q, getArg(p, 2));
+ (void) pushArgument(mb, q, getArg(p, 2));
actions++;
freeInstruction(p);
continue;
diff --git a/sql/server/rel_exp.c b/sql/server/rel_exp.c
--- a/sql/server/rel_exp.c
+++ b/sql/server/rel_exp.c
@@ -630,7 +630,7 @@ exp_match( sql_exp *e1, sql_exp *e2)
if (exp_cmp(e1, e2) == 0)
return 1;
if (e1->type == e2->type && e1->type == e_column) {
- if (!e1->l || !e2->l || strcmp(e1->l, e2->l) != 0)
+ if (e1->l != e2->l && (!e1->l || !e2->l || strcmp(e1->l, e2->l)
!= 0))
return 0;
if (!e1->r || !e2->r || strcmp(e1->r, e2->r) != 0)
return 0;
diff --git a/tools/merovingian/client/monetdb.c
b/tools/merovingian/client/monetdb.c
--- a/tools/merovingian/client/monetdb.c
+++ b/tools/merovingian/client/monetdb.c
@@ -1221,7 +1221,7 @@ command_get(int argc, char *argv[])
char *property = NULL;
char propall = 0;
char vbuf[512];
- char *buf;
+ char *buf = 0;
char *e;
int i;
sabdb *orig, *stats;
@@ -1303,13 +1303,14 @@ command_get(int argc, char *argv[])
fprintf(stderr, "get: %s\n", e);
free(e);
exit(2);
- } else if (strncmp(buf, "OK\n", 3) != 0) {
+ } else if ( buf && strncmp(buf, "OK\n", 3) != 0) {
fprintf(stderr, "get: %s\n", buf);
free(buf);
exit(1);
}
readPropsBuf(defprops, buf + 3);
- free(buf);
+ if( buf)
+ free(buf);
if (twidth > 0) {
/* name = 15 */
diff --git a/tools/merovingian/daemon/controlrunner.c
b/tools/merovingian/daemon/controlrunner.c
--- a/tools/merovingian/daemon/controlrunner.c
+++ b/tools/merovingian/daemon/controlrunner.c
@@ -845,6 +845,7 @@ static void ctl_handle_client(
send_client("!");
Mfprintf(_mero_ctlerr, "%s: status:
msab_getStatus: "
"%s\n", origin, e);
+ msab_freeStatus(&topdb);
freeErr(e);
break;
}
diff --git a/tools/merovingian/daemon/merovingian.c
b/tools/merovingian/daemon/merovingian.c
--- a/tools/merovingian/daemon/merovingian.c
+++ b/tools/merovingian/daemon/merovingian.c
@@ -142,7 +142,7 @@ logFD(int fd, char *type, char *dbname,
{
time_t now;
char buf[8096];
- size_t len;
+ int len = 0;
char *p, *q;
struct tm *tmp;
char mytime[20];
@@ -165,7 +165,7 @@ logFD(int fd, char *type, char *dbname,
q = p + 1;
writeident = 1;
}
- if ((size_t)(q - buf) < len) {
+ if ((int)(q - buf) < len) {
if (writeident == 1)
fprintf(stream, "%s %s %s[" LLFMT "]: ",
mytime, type, dbname, pid);
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list