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 checkin-list@monetdb.org https://www.monetdb.org/mailman/listinfo/checkin-list