]> git.sur5r.net Git - bacula/bacula/commitdiff
Fix a few more Coverity reported problems.
authorKern Sibbald <kern@sibbald.com>
Sun, 25 May 2008 13:13:20 +0000 (13:13 +0000)
committerKern Sibbald <kern@sibbald.com>
Sun, 25 May 2008 13:13:20 +0000 (13:13 +0000)
git-svn-id: https://bacula.svn.sourceforge.net/svnroot/bacula/trunk@7029 91ce42f0-d328-0410-95d8-f526ca767f89

bacula/AUTHORS
bacula/src/lib/message.c
bacula/src/lib/smartall.c
bacula/src/stored/match_bsr.c
bacula/technotes-2.3

index 72282f4e960972d9e7f2c1474203d108fba1f7fd..a1ae6dabf48cd7b7576119957e29812e71e7e5dc 100644 (file)
@@ -81,6 +81,7 @@ Peter Much
 Philippe Chauvat
 Phil Stracchino
 Preben Guldberg
+Riccardo Ghetta
 Richard Mortimer                        
 Robert Nelson
 Rudolf Cejka
index 2b624f823595163ccfad674c98d10a5f88d2d88f..17e8a745114f399823be00f5433c1d66e0abdd9a 100644 (file)
@@ -384,17 +384,16 @@ static BPIPE *open_mail_pipe(JCR *jcr, POOLMEM *&cmd, DEST *d)
    }
    fflush(stdout);
 
-   if (!(bpipe = open_bpipe(cmd, 120, "rw"))) {
+   if ((bpipe = open_bpipe(cmd, 120, "rw"))) {
+      /* If we had to use sendmail, add subject */
+      if (!d->mail_cmd) {
+         fprintf(bpipe->wfd, "Subject: %s\r\n\r\n", _("Bacula Message"));
+      }
+   } else {
       berrno be;
       Jmsg(jcr, M_ERROR, 0, _("open mail pipe %s failed: ERR=%s\n"),
          cmd, be.bstrerror());
    }
-
-   /* If we had to use sendmail, add subject */
-   if (!d->mail_cmd) {
-       fprintf(bpipe->wfd, "Subject: %s\r\n\r\n", _("Bacula Message"));
-   }
-
    return bpipe;
 }
 
index 9ebfbbb13c437c4e574043f28fe33f0ecf99fae2..862cce5471c8f27a32b7aa2aaa0f477fd1d6a1f2 100644 (file)
@@ -451,18 +451,21 @@ int sm_check_rtn(const char *fname, int lineno, bool bufdump)
 
    P(mutex);
    ap = (struct abufhead *) abqueue.qnext;
-   while (ap != (struct abufhead *) &abqueue) {
+   while (ap != (struct abufhead *)&abqueue) {
       bad = 0;
-      if ((ap == NULL) ||
-          (ap->abq.qnext->qprev != (struct b_queue *) ap)) {
-         bad = 0x1;
-      }
-      if (ap->abq.qprev->qnext != (struct b_queue *) ap) {
-         bad |= 0x2;
-      }
-      if (((unsigned char *) ap)[((struct abufhead *) ap)->ablen - 1] !=
-           ((((long) ap) & 0xFF) ^ 0xC5)) {
-         bad |= 0x4;
+      if (ap != NULL) {
+         if (ap->abq.qnext->qprev != (struct b_queue *)ap) {
+            bad = 0x1;
+         }
+         if (ap->abq.qprev->qnext != (struct b_queue *)ap) {
+            bad |= 0x2;
+         }
+         if (((unsigned char *) ap)[((struct abufhead *)ap)->ablen - 1] !=
+              ((((long) ap) & 0xFF) ^ 0xC5)) {
+            bad |= 0x4;
+         }
+      } else {
+         bad = 0x8;
       }
       badbuf |= bad;
       if (bad) {
@@ -478,7 +481,13 @@ int sm_check_rtn(const char *fname, int lineno, bool bufdump)
          if (bad & 0x4) {
             fprintf(stderr, _("  discovery of data overrun.\n"));
          }
+         if (bad & 0x8) {
+            fprintf(stderr, _("  NULL pointer.\n"));
+         }
 
+         if (!ap) {
+            goto get_out;
+         }
          fprintf(stderr, _("  Buffer address: %p\n"), ap);
 
          if (ap->abfname != NULL) {
@@ -515,8 +524,9 @@ int sm_check_rtn(const char *fname, int lineno, bool bufdump)
             }
          }
       }
-      ap = (struct abufhead *) ap->abq.qnext;
+      ap = (struct abufhead *)ap->abq.qnext;
    }
+get_out:
    V(mutex);
    return badbuf ? 0 : 1;
 }
index e8dbdc2fdd2e33616801bfe89a144f17ddb0265c..2552eee607b3ae424282c1e445c59eeea7036d43 100644 (file)
@@ -193,7 +193,11 @@ BSR *find_next_bsr(BSR *root_bsr, DEVICE *dev)
    BSR *found_bsr = NULL;
 
    /* Do tape/disk seeking only if CAP_POSITIONBLOCKS is on */
-   if (!root_bsr || !root_bsr->use_positioning ||
+   if (!root_bsr) {
+      Dmsg0(dbglevel, "NULL root bsr pointer passed to find_next_bsr.\n");
+      return NULL;
+   }
+   if (!root_bsr->use_positioning ||
        !root_bsr->reposition || !dev->has_cap(CAP_POSITIONBLOCKS)) {
       Dmsg2(dbglevel, "No nxt_bsr use_pos=%d repos=%d\n", root_bsr->use_positioning, root_bsr->reposition);
       return NULL;
index 553f880484896f518fd67e736d8cf6a049fe049e..6c8b6b5abe5766f442ce484c73989f9caba6f043 100644 (file)
@@ -24,6 +24,8 @@ Add long term statistics job table
 
 
 General:
+25May08
+kes  Fix a few more Coverity reported problems.
 24May08
 kes  Apply Allan Black's status dir job count patch.
 ebl  Add information about IMPORT/EXPORT slots in mtx-script.