]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/lib/smartall.c
- Fix seg fault if user labels a drive directory bug #513
[bacula/bacula] / bacula / src / lib / smartall.c
index 0f7c00fd5dfe1ba8b3de74361978398af5ac4794..138522d20baf98beb5b1fc751fe29701e4e78ff8 100644 (file)
 */
 
 /*
-   Copyright (C) 2000-2004 Kern Sibbald and John Walker
+   Copyright (C) 2000-2005 Kern Sibbald
 
    This program is free software; you can redistribute it and/or
-   modify it under the terms of the GNU General Public License as
-   published by the Free Software Foundation; either version 2 of
-   the License, or (at your option) any later version.
+   modify it under the terms of the GNU General Public License
+   version 2 as amended with additional clauses defined in the
+   file LICENSE in the main source directory.
 
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-   General Public License for more details.
-
-   You should have received a copy of the GNU General Public
-   License along with this program; if not, write to the Free
-   Software Foundation, Inc., 59 Temple Place - Suite 330, Boston,
-   MA 02111-1307, USA.
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 
+   the file LICENSE for additional details.
 
  */
 
@@ -123,7 +118,7 @@ static void *smalloc(const char *fname, int lineno, unsigned int nbytes)
       head->abfname = bufimode ? NULL : fname;
       head->ablineno = (sm_ushort) lineno;
       /* Emplace end-clobber detector at end of buffer */
-      buf[nbytes - 1] = (((long) buf) & 0xFF) ^ 0xC5;
+      buf[nbytes - 1] = (uint8_t)((((long) buf) & 0xFF) ^ 0xC5);
       buf += HEAD_SIZE;  /* Increment to user data start */
       if (++sm_buffers > sm_max_buffers) {
         sm_max_buffers = sm_buffers;
@@ -221,7 +216,7 @@ void *sm_malloc(const char *fname, int lineno, unsigned int nbytes)
 
       /* To catch sloppy code that assumes  buffers  obtained  from
         malloc()  are  zeroed,  we  preset  the buffer contents to
-        "designer garbage" consisting of alternating bits.  */
+         "designer garbage" consisting of alternating bits.  */
 
       memset(buf, 0x55, (int) nbytes);
    } else {
@@ -246,7 +241,7 @@ void *sm_calloc(const char *fname, int lineno,
 }
 
 /*  SM_REALLOC --  Adjust the size of a  previously  allocated  buffer.
-                   Note  that  the trick of "resurrecting" a previously
+                    Note  that  the trick of "resurrecting" a previously
                    freed buffer with realloc() is NOT supported by this
                    function.   Further, because of the need to maintain
                    our control storage, SM_REALLOC must always allocate
@@ -294,7 +289,7 @@ void *sm_realloc(const char *fname, int lineno, void *ptr, unsigned int size)
    if ((buf = smalloc(fname, lineno, size)) != NULL) {
       memcpy(buf, ptr, (int) sm_min(size, osize));
       /* If the new buffer is larger than the old, fill the balance
-        of it with "designer garbage". */
+         of it with "designer garbage". */
       if (size > osize) {
         memset(((char *) buf) + osize, 0x55, (int) (size - osize));
       }
@@ -365,9 +360,9 @@ void sm_dump(bool bufdump)
          (ap->abq.qnext->qprev != (struct b_queue *) ap) ||
          (ap->abq.qprev->qnext != (struct b_queue *) ap)) {
         fprintf(stderr, _(
-           "\nOrphaned buffers exist.  Dump terminated following\n"
-           "  discovery of bad links in chain of orphaned buffers.\n"
-           "  Buffer address with bad links: %lx\n"), (long) ap);
+            "\nOrphaned buffers exist.  Dump terminated following\n"
+            "  discovery of bad links in chain of orphaned buffers.\n"
+            "  Buffer address with bad links: %lx\n"), (long) ap);
         break;
       }
 
@@ -376,10 +371,10 @@ void sm_dump(bool bufdump)
         char errmsg[500];
 
         bsnprintf(errmsg, sizeof(errmsg),
-          _("Orphaned buffer:  %6u bytes allocated at line %d of %s %s\n"),
+           _("Orphaned buffer:  %6u bytes allocated at line %d of %s %s\n"),
            memsize, ap->ablineno, my_name, ap->abfname
         );
-        fprintf(stderr, "%s", errmsg);
+         fprintf(stderr, "%s", errmsg);
         if (bufdump) {
            char buf[20];
            unsigned llen = 0;
@@ -388,18 +383,18 @@ void sm_dump(bool bufdump)
            errmsg[0] = EOS;
            while (memsize) {
               if (llen >= 16) {
-                 bstrncat(errmsg, "\n", sizeof(errmsg));
+                  bstrncat(errmsg, "\n", sizeof(errmsg));
                  llen = 0;
-                 fprintf(stderr, "%s", errmsg);
+                  fprintf(stderr, "%s", errmsg);
                  errmsg[0] = EOS;
               }
-              bsnprintf(buf, sizeof(buf), " %02X",
+               bsnprintf(buf, sizeof(buf), " %02X",
                  (*cp++) & 0xFF);
               bstrncat(errmsg, buf, sizeof(errmsg));
               llen++;
               memsize--;
            }
-           fprintf(stderr, "%s\n", errmsg);
+            fprintf(stderr, "%s\n", errmsg);
         }
       }
       ap = (struct abufhead *) ap->abq.qnext;
@@ -412,7 +407,7 @@ void sm_dump(bool bufdump)
 void sm_check(const char *fname, int lineno, bool bufdump)
 {
        if (!sm_check_rtn(fname, lineno, bufdump)) {
-          Emsg2(M_ABORT, 0, _("Damaged buffer found. Called from %s:%d\n"),
+           Emsg2(M_ABORT, 0, _("Damaged buffer found. Called from %s:%d\n"),
              fname, lineno);
        }
 }
@@ -442,26 +437,26 @@ int sm_check_rtn(const char *fname, int lineno, bool bufdump)
       badbuf |= bad;
       if (bad) {
         fprintf(stderr,
-           _("\nDamaged buffers found at %s:%d\n"), fname, lineno);
+            _("\nDamaged buffers found at %s:%d\n"), fname, lineno);
 
         if (bad & 0x1) {
-           fprintf(stderr, _("  discovery of bad prev link.\n"));
+            fprintf(stderr, _("  discovery of bad prev link.\n"));
         }
         if (bad & 0x2) {
-           fprintf(stderr, _("  discovery of bad next link.\n"));
+            fprintf(stderr, _("  discovery of bad next link.\n"));
         }
         if (bad & 0x4) {
-           fprintf(stderr, _("  discovery of data overrun.\n"));
+            fprintf(stderr, _("  discovery of data overrun.\n"));
         }
 
-        fprintf(stderr, _("  Buffer address: %lx\n"), (long) ap);
+         fprintf(stderr, _("  Buffer address: %lx\n"), (long) ap);
 
         if (ap->abfname != NULL) {
            unsigned memsize = ap->ablen - (HEAD_SIZE + 1);
            char errmsg[80];
 
            fprintf(stderr,
-             _("Damaged buffer:  %6u bytes allocated at line %d of %s %s\n"),
+              _("Damaged buffer:  %6u bytes allocated at line %d of %s %s\n"),
               memsize, ap->ablineno, my_name, ap->abfname
            );
            if (bufdump) {
@@ -471,22 +466,22 @@ int sm_check_rtn(const char *fname, int lineno, bool bufdump)
               errmsg[0] = EOS;
               while (memsize) {
                  if (llen >= 16) {
-                    strcat(errmsg, "\n");
+                     strcat(errmsg, "\n");
                     llen = 0;
-                    fprintf(stderr, "%s", errmsg);
+                     fprintf(stderr, "%s", errmsg);
                     errmsg[0] = EOS;
                  }
                  if (*cp < 0x20) {
-                    sprintf(errmsg + strlen(errmsg), " %02X",
+                     sprintf(errmsg + strlen(errmsg), " %02X",
                        (*cp++) & 0xFF);
                  } else {
-                    sprintf(errmsg + strlen(errmsg), " %c ",
+                     sprintf(errmsg + strlen(errmsg), " %c ",
                        (*cp++) & 0xFF);
                  }
                  llen++;
                  memsize--;
               }
-              fprintf(stderr, "%s\n", errmsg);
+               fprintf(stderr, "%s\n", errmsg);
            }
         }
       }