Changeset: f191fb03b979 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB?cmd=changeset;node=f191fb03b979
Modified Files:
        gdk/gdk_bat.c
        gdk/gdk_batop.c
        gdk/gdk_bbp.c
        gdk/gdk_join.c
        gdk/gdk_project.c
        gdk/gdk_storage.c
        tools/merovingian/utils/control.c
Branch: Nov2019
Log Message:

Coverity fixes.


diffs (134 lines):

diff --git a/gdk/gdk_bat.c b/gdk/gdk_bat.c
--- a/gdk/gdk_bat.c
+++ b/gdk/gdk_bat.c
@@ -1273,7 +1273,7 @@ BUNinplace(BAT *b, BUN p, const void *t,
                ptr _ptr;
                _ptr = BUNtloc(bi, p);
                switch (b->twidth) {
-               case 1:
+               default:        /* only three or four cases possible */
                        _d = (var_t) * (uint8_t *) _ptr + GDK_VAROFFSET;
                        break;
                case 2:
@@ -1297,7 +1297,7 @@ BUNinplace(BAT *b, BUN p, const void *t,
                }
                _ptr = BUNtloc(bi, p);
                switch (b->twidth) {
-               case 1:
+               default:        /* only three or four cases possible */
                        * (uint8_t *) _ptr = (uint8_t) (_d - GDK_VAROFFSET);
                        break;
                case 2:
diff --git a/gdk/gdk_batop.c b/gdk/gdk_batop.c
--- a/gdk/gdk_batop.c
+++ b/gdk/gdk_batop.c
@@ -1051,7 +1051,7 @@ BATreplace(BAT *b, BAT *p, BAT *n, bool 
 
                        var_t d;
                        switch (b->twidth) {
-                       case 1:
+                       default: /* only three of four cases possible */
                                d = (var_t) ((uint8_t *) b->theap.base)[updid] 
+ GDK_VAROFFSET;
                                break;
                        case 2:
diff --git a/gdk/gdk_bbp.c b/gdk/gdk_bbp.c
--- a/gdk/gdk_bbp.c
+++ b/gdk/gdk_bbp.c
@@ -1452,8 +1452,11 @@ BBPinit(void)
                /* try to obtain a BBP.dir from bakdir */
                if (stat(backupbbpdirstr, &st) == 0) {
                        /* backup exists; *must* use it */
-                       if (recover_dir(0, stat(bbpdirstr, &st) == 0) != 
GDK_SUCCEED)
+                       if (recover_dir(0, stat(bbpdirstr, &st) == 0) != 
GDK_SUCCEED) {
+                               GDKfree(bbpdirstr);
+                               GDKfree(backupbbpdirstr);
                                goto bailout;
+                       }
                        if ((fp = GDKfilelocate(0, "BBP", "r", "dir")) == NULL) 
{
                                GDKfree(bbpdirstr);
                                GDKfree(backupbbpdirstr);
@@ -1467,8 +1470,11 @@ BBPinit(void)
                                /* no BBP.bak (nor BBP.dir or BACKUP/BBP.dir):
                                 * create a new one */
                                IODEBUG fprintf(stderr, "#BBPdir: initializing 
BBP.\n");        /* BBPdir instead of BBPinit for backward compatibility of 
error messages */
-                               if (BBPdir(0, NULL) != GDK_SUCCEED)
+                               if (BBPdir(0, NULL) != GDK_SUCCEED) {
+                                       GDKfree(bbpdirstr);
+                                       GDKfree(backupbbpdirstr);
                                        goto bailout;
+                               }
                        } else if (GDKmove(0, BATDIR, "BBP", "bak", BATDIR, 
"BBP", "dir") == GDK_SUCCEED)
                                IODEBUG fprintf(stderr, "#BBPinit: reverting to 
dir saved in BBP.bak.\n");
 
@@ -1749,14 +1755,14 @@ BBPdir_subcommit(int cnt, bat *subcommit
        if ((obbpf = GDKfileopen(0, SUBDIR, "BBP", "dir", "r")) == NULL &&
            (obbpf = GDKfileopen(0, BAKDIR, "BBP", "dir", "r")) == NULL) {
                GDKerror("BBPdir: subcommit attempted without backup BBP.dir.");
-               return GDK_FAIL;
+               goto bailout;
        }
        /* read first three lines */
        if (fgets(buf, sizeof(buf), obbpf) == NULL || /* BBP.dir, GDKversion %d 
*/
            fgets(buf, sizeof(buf), obbpf) == NULL || /* SIZEOF_SIZE_T 
SIZEOF_OID SIZEOF_MAX_INT */
            fgets(buf, sizeof(buf), obbpf) == NULL) { /* BBPsize=%d */
                GDKerror("BBPdir: subcommit attempted with invalid backup 
BBP.dir.");
-               return GDK_FAIL;
+               goto bailout;
        }
        /* third line contains BBPsize */
        sscanf(buf, "BBPsize=%d", &n);
diff --git a/gdk/gdk_join.c b/gdk/gdk_join.c
--- a/gdk/gdk_join.c
+++ b/gdk/gdk_join.c
@@ -3661,7 +3661,7 @@ leftjoin(BAT **r1p, BAT **r2p, BAT *l, B
        }
        phash = sr == NULL &&
                VIEWtparent(r) != 0 &&
-               BATcount(BBPquickdesc(VIEWtparent(r), false)) == BATcount(r);
+               BATcount(BBP_cache(VIEWtparent(r))) == BATcount(r);
        return hashjoin(r1p, r2p, l, r, sl, sr,
                        lstart, lend, lcnt, lcand, lcandend,
                        rstart, rend, rcnt, rcand, rcandend,
diff --git a/gdk/gdk_project.c b/gdk/gdk_project.c
--- a/gdk/gdk_project.c
+++ b/gdk/gdk_project.c
@@ -333,6 +333,7 @@ BATproject(BAT *l, BAT *r)
 
        /* handle string trick */
        if (stringtrick) {
+               assert(r->tvheap);
                if (r->batRestricted == BAT_READ) {
                        /* really share string heap */
                        assert(r->tvheap->parentid > 0);
diff --git a/gdk/gdk_storage.c b/gdk/gdk_storage.c
--- a/gdk/gdk_storage.c
+++ b/gdk/gdk_storage.c
@@ -171,7 +171,8 @@ GDKremovedir(int farmid, const char *dir
                }
                path = GDKfilepath(farmid, dirname, dent->d_name, NULL);
                if (path == NULL) {
-                       ret = -1;
+                       /* most likely the rmdir will now fail causing
+                        * an error return */
                        goto bailout;
                }
                ret = remove(path);
diff --git a/tools/merovingian/utils/control.c 
b/tools/merovingian/utils/control.c
--- a/tools/merovingian/utils/control.c
+++ b/tools/merovingian/utils/control.c
@@ -101,6 +101,7 @@ char* control_send(
                                continue;
                        if (connect(sock, rp->ai_addr, (socklen_t) 
rp->ai_addrlen) != SOCKET_ERROR)
                                break;  /* success */
+                       closesocket(sock);
                }
                freeaddrinfo(res);
                if (rp == NULL) {
@@ -111,7 +112,6 @@ char* control_send(
                                         strerror(errno)
 #endif
                        );
-                       closesocket(sock);
                        return(strdup(sbuf));
                }
 #if !defined(SOCK_CLOEXEC) && defined(HAVE_FCNTL)
_______________________________________________
checkin-list mailing list
[email protected]
https://www.monetdb.org/mailman/listinfo/checkin-list

Reply via email to