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

Reply via email to