]> diplodocus.org Git - nmh/blobdiff - uip/dropsbr.c
Add first-line comment describing C source's purpose.
[nmh] / uip / dropsbr.c
index baf8268ba4d5ec8fc4d979b3dcce515f7bd38a23..a02e29c48fda1a28ac3ee6ed55682bf56c64056c 100644 (file)
@@ -1,6 +1,4 @@
-
-/*
- * dropsbr.c -- create/read/manipulate mail drops
+/* dropsbr.c -- create/read/manipulate mail drops
  *
  * This code is Copyright (c) 2002, by the authors of nmh.  See the
  * COPYRIGHT file in the root directory of the nmh distribution for
@@ -272,7 +270,7 @@ mbx_copy (char *mailbox, int mbx_style, int md, int fd,
     int i, j, size;
     off_t start, stop;
     long pos;
-    char *cp, buffer[BUFSIZ];
+    char *cp, buffer[BUFSIZ + 1];   /* Space for NUL. */
     FILE *fp;
 
     pos = (long) lseek (md, (off_t) 0, SEEK_CUR);
@@ -295,10 +293,8 @@ mbx_copy (char *mailbox, int mbx_style, int md, int fd,
                        size++;
            }
                    
-           while ((i = read (fd, buffer, sizeof(buffer))) > 0) {
-                /* valgrind noticed that stringdex depends on null
-                   termination. */
-                buffer[i] = '\0';
+           while ((i = read (fd, buffer, sizeof buffer - 1)) > 0) {
+                buffer[i] = '\0';   /* Terminate for stringdex(). */
 
                for ( ; (j = stringdex (mmdlm1, buffer)) >= 0; buffer[j]++)
                    continue;
@@ -351,7 +347,7 @@ mbx_copy (char *mailbox, int mbx_style, int md, int fd,
                     * back to "From ".
                     */
                     if (has_prefix(buffer, "Return-Path:")) {
-                       char tmpbuffer[BUFSIZ];
+                       char tmpbuffer[sizeof buffer];
                        char *tp, *ep, *fp;
 
                        strncpy(tmpbuffer, buffer, sizeof(tmpbuffer));
@@ -366,7 +362,7 @@ mbx_copy (char *mailbox, int mbx_style, int md, int fd,
                         * Change the "X-Envelope-From:" field
                         * (if first line) back to "From ".
                         */
-                       char tmpbuffer[BUFSIZ];
+                       char tmpbuffer[sizeof buffer];
                        char *ep;
 
                        strncpy(tmpbuffer, buffer, sizeof(tmpbuffer));
@@ -377,7 +373,7 @@ mbx_copy (char *mailbox, int mbx_style, int md, int fd,
                         * If there is already a "From " line,
                         * then leave it alone.  Else we add one.
                         */
-                       char tmpbuffer[BUFSIZ];
+                       char tmpbuffer[sizeof buffer];
                        char *tp, *ep;
 
                        strncpy(tmpbuffer, buffer, sizeof(tmpbuffer));
@@ -652,7 +648,7 @@ map_chk (char *file, int fd, struct drop *dp, long pos, int noisy)
 
     if (read (fd, (char *) &tmpd, sizeof(*dp)) != sizeof(*dp)) {
 #ifdef notdef
-       admonish (NULL, "%s: missing or partial index", file);
+       inform("%s: missing or partial index, continuing...", file);
 #endif /* notdef */
        return NOTOK;
     }
@@ -667,22 +663,21 @@ map_chk (char *file, int fd, struct drop *dp, long pos, int noisy)
     
     if (dp->d_size != DRVRSN) {
        if (noisy)
-           admonish (NULL, "%s: version mismatch (%d != %d)", file,
+           inform("%s: version mismatch (%d != %d), continuing...", file,
                                dp->d_size, DRVRSN);
        return NOTOK;
     }
 
     if (dp->d_stop != pos) {
        if (noisy && pos != (long) 0)
-           admonish (NULL,
-                   "%s: pointer mismatch or incomplete index (%ld!=%ld)", 
-                   file, dp->d_stop, (long) pos);
+           inform("%s: pointer mismatch or incomplete index (%ld!=%ld), "
+               "continuing...", file, dp->d_stop, (long) pos);
        return NOTOK;
     }
 
     if ((long) ((dp->d_id + 1) * sizeof(*dp)) != (long) lseek (fd, (off_t) 0, SEEK_END)) {
        if (noisy)
-           admonish (NULL, "%s: corrupt index(1)", file);
+           inform("%s: corrupt index(1), continuing...", file);
        return NOTOK;
     }
 
@@ -693,7 +688,7 @@ map_chk (char *file, int fd, struct drop *dp, long pos, int noisy)
            || (ntohl(dl->d_stop) != dp->d_stop
                && ntohl(dl->d_stop) + count != dp->d_stop)) {
        if (noisy)
-           admonish (NULL, "%s: corrupt index(2)", file);
+           inform("%s: corrupt index(2), continuing...", file);
        return NOTOK;
     }