]> diplodocus.org Git - nmh/commitdiff
Added checks of return value of fwrite() calls where missing.
authorDavid Levine <levinedl@acm.org>
Mon, 15 Sep 2014 01:24:24 +0000 (20:24 -0500)
committerDavid Levine <levinedl@acm.org>
Mon, 15 Sep 2014 01:24:24 +0000 (20:24 -0500)
mts/smtp/smtp.c
sbr/base64.c
uip/inc.c
uip/mhcachesbr.c
uip/mhfixmsg.c
uip/mhoutsbr.c
uip/mhparse.c
uip/mhshowsbr.c
uip/mhstoresbr.c
uip/popsbr.c

index 58ca023caa2c873529c115f5bb53c74b720bac7b..873e0cd8d5c59400fb46b15f8b929fed4ab2a4b5 100644 (file)
@@ -1272,7 +1272,9 @@ sm_fwrite(char *buffer, int len)
            }
        } else
 #endif /* TLS_SUPPORT */
            }
        } else
 #endif /* TLS_SUPPORT */
-       fwrite(buffer, sizeof(*buffer), len, sm_wfp);
+       if ((int) fwrite(buffer, sizeof(*buffer), len, sm_wfp) < len) {
+           advise ("sm_fwrite", "fwrite");
+       }
 #ifdef CYRUS_SASL
     } else {
        while (len >= maxoutbuf - sasl_outbuflen) {
 #ifdef CYRUS_SASL
     } else {
        while (len >= maxoutbuf - sasl_outbuflen) {
@@ -1288,7 +1290,10 @@ sm_fwrite(char *buffer, int len)
                return NOTOK;
            }
 
                return NOTOK;
            }
 
-           fwrite(output, sizeof(*output), outputlen, sm_wfp);
+           if (fwrite(output, sizeof(*output), outputlen, sm_wfp) <
+               outputlen) {
+               advise ("sm_fwrite", "fwrite");
+           }
        }
 
        if (len > 0) {
        }
 
        if (len > 0) {
@@ -1435,7 +1440,9 @@ sm_fflush(void)
            return;
        }
 
            return;
        }
 
-       fwrite(output, sizeof(*output), outputlen, sm_wfp);
+       if (fwrite(output, sizeof(*output), outputlen, sm_wfp) < outputlen) {
+           advise ("sm_fflush", "fwrite");
+       }
        sasl_outbuflen = 0;
     }
 #endif /* CYRUS_SASL */
        sasl_outbuflen = 0;
     }
 #endif /* CYRUS_SASL */
index 2fbef4b002496960d38c697c93e248a13abb221b..3a578c21bd2794faeb8bdd570859014788505a08 100644 (file)
@@ -83,7 +83,10 @@ writeBase64aux (FILE *in, FILE *out, int crlf)
                outbuf[2] = '=';
        }
 
                outbuf[2] = '=';
        }
 
-       fwrite (outbuf, sizeof(*outbuf), sizeof(outbuf), out);
+       if (fwrite (outbuf, sizeof(*outbuf), sizeof(outbuf), out) <
+            sizeof outbuf) {
+           advise ("writeBase64aux", "fwrite");
+       }
 
        if (cc < sizeof(inbuf)) {
            putc ('\n', out);
 
        if (cc < sizeof(inbuf)) {
            putc ('\n', out);
index 1ea618db44204ed355d6fe804411980abe613552..8b9fe7ae876e3a52ca4f85b813e1b5b1033f0c61 100644 (file)
--- a/uip/inc.c
+++ b/uip/inc.c
@@ -594,7 +594,9 @@ go_to_it:
                fseek (pf, 0L, SEEK_CUR);
                pos = ftell (pf);
                size = 0;
                fseek (pf, 0L, SEEK_CUR);
                pos = ftell (pf);
                size = 0;
-               fwrite (mmdlm1, 1, strlen (mmdlm1), pf);
+               if (fwrite (mmdlm1, 1, strlen (mmdlm1), pf) < strlen (mmdlm1)) {
+                   advise (mmdlm1, "fwrite");
+               }
                start = ftell (pf);
 
                if (pop_retr (i, pop_pack) == NOTOK)
                start = ftell (pf);
 
                if (pop_retr (i, pop_pack) == NOTOK)
@@ -649,7 +651,9 @@ go_to_it:
 
            if (packfile) {
                fseek (pf, stop, SEEK_SET);
 
            if (packfile) {
                fseek (pf, stop, SEEK_SET);
-               fwrite (mmdlm2, 1, strlen (mmdlm2), pf);
+               if (fwrite (mmdlm2, 1, strlen (mmdlm2), pf) < strlen (mmdlm1)) {
+                   advise (mmdlm2, "fwrite");
+               }
                if (fflush (pf) || ferror (pf)) {
                    int e = errno;
                    pop_quit ();
                if (fflush (pf) || ferror (pf)) {
                    int e = errno;
                    pop_quit ();
index 7814d6ee692126dc9dccc051568a84d68596a081..56ba9b71bf87735f533e54a80b221c81e5ad5d72 100644 (file)
@@ -136,7 +136,9 @@ cache_content (CT ct)
 
            while ((cc = fread (buffer, sizeof(*buffer), sizeof(buffer), gp))
                       > 0)
 
            while ((cc = fread (buffer, sizeof(*buffer), sizeof(buffer), gp))
                       > 0)
-               fwrite (buffer, sizeof(*buffer), cc, fp);
+               if ((int) fwrite (buffer, sizeof(*buffer), cc, fp) < cc) {
+                   advise ("cache_content", "fwrite");
+               }
            fflush (fp);
 
            if (ferror (gp)) {
            fflush (fp);
 
            if (ferror (gp)) {
index 3180e9ce3ce3c2b9cde53f34cfb145a5215a29e4..4d5083c64453766798f924e5d15531d8e41fae67 100644 (file)
@@ -675,7 +675,9 @@ replace_boundary (CT ct, char *file, char *boundary) {
         case BODY:
             fputs ("\n", fpout);
             /* buf will have a terminating NULL, skip it. */
         case BODY:
             fputs ("\n", fpout);
             /* buf will have a terminating NULL, skip it. */
-            fwrite (buf, 1, bufsz-1, fpout);
+            if ((int) fwrite (buf, 1, bufsz-1, fpout) < bufsz-1) {
+                advise (file, "fwrite");
+            }
             continue;
 
         case FILEEOF:
             continue;
 
         case FILEEOF:
index b672de77a4e7a552124691bbe2fdf9dc93996b53..ca1acf8374763531fe82e99a07f94647495d9b97 100644 (file)
@@ -317,7 +317,9 @@ write8Bit (CT ct, FILE *out)
     c = '\n';
     while ((inbytes = fread (buffer, 1, sizeof buffer, ce->ce_fp)) > 0) {
         c = buffer[inbytes - 1];
     c = '\n';
     while ((inbytes = fread (buffer, 1, sizeof buffer, ce->ce_fp)) > 0) {
         c = buffer[inbytes - 1];
-        fwrite (buffer, 1, inbytes, out);
+        if (fwrite (buffer, 1, inbytes, out) < inbytes) {
+            advise ("write8Bit", "fwrite");
+        }
     }
     if (c != '\n')
        putc ('\n', out);
     }
     if (c != '\n')
        putc ('\n', out);
index e7782f14eec442491901adece5a159f7b58ad1f0..548a9509683162dff4261ad99a4922a7d8848ac4 100644 (file)
@@ -2274,7 +2274,9 @@ open7Bit (CT ct, char **file)
                cc = len;
            len -= cc;
 
                cc = len;
            len -= cc;
 
-           fwrite (buffer, sizeof(*buffer), cc, ce->ce_fp);
+           if ((int) fwrite (buffer, sizeof(*buffer), cc, ce->ce_fp) < cc) {
+               advise ("open7Bit", "fwrite");
+           }
            if (ferror (ce->ce_fp)) {
                content_error (ce->ce_file, ct, "error writing to");
                goto clean_up;
            if (ferror (ce->ce_fp)) {
                content_error (ce->ce_file, ct, "error writing to");
                goto clean_up;
@@ -2409,7 +2411,9 @@ openFile (CT ct, char **file)
 
            while ((cc = fread (buffer, sizeof(*buffer), sizeof(buffer), gp))
                       > 0)
 
            while ((cc = fread (buffer, sizeof(*buffer), sizeof(buffer), gp))
                       > 0)
-               fwrite (buffer, sizeof(*buffer), cc, fp);
+               if ((int) fwrite (buffer, sizeof(*buffer), cc, fp) < cc) {
+                   advise ("openFile", "fwrite");
+               }
            fflush (fp);
 
            if (ferror (gp)) {
            fflush (fp);
 
            if (ferror (gp)) {
@@ -2618,7 +2622,9 @@ openFTP (CT ct, char **file)
 
                while ((cc= fread (buffer, sizeof(*buffer), sizeof(buffer), gp))
                           > 0)
 
                while ((cc= fread (buffer, sizeof(*buffer), sizeof(buffer), gp))
                           > 0)
-                   fwrite (buffer, sizeof(*buffer), cc, fp);
+                   if ((int) fwrite (buffer, sizeof(*buffer), cc, fp) < cc) {
+                       advise ("openFTP", "fwrite");
+                   }
                fflush (fp);
 
                if (ferror (gp)) {
                fflush (fp);
 
                if (ferror (gp)) {
@@ -2878,7 +2884,9 @@ openURL (CT ct, char **file)
 
                while ((cc = fread(buffer, sizeof(*buffer),
                                   sizeof(buffer), gp)) > 0)
 
                while ((cc = fread(buffer, sizeof(*buffer),
                                   sizeof(buffer), gp)) > 0)
-                   fwrite(buffer, sizeof(*buffer), cc, fp);
+                   if ((int) fwrite(buffer, sizeof(*buffer), cc, fp) < cc) {
+                       advise ("openURL", "fwrite");
+                   }
 
                fflush(fp);
 
 
                fflush(fp);
 
index 720ba9bc0fbfaf801722c5aac51925969959ddbe..6236352ca21da6c98efa9b7775588cc761df7dc5 100644 (file)
@@ -424,7 +424,9 @@ show_content_aux2 (CT ct, int alternate, char *cracked, char *buffer,
        }
 
        while ((cc = read(fd, readbuf, sizeof(readbuf))) > 0) {
        }
 
        while ((cc = read(fd, readbuf, sizeof(readbuf))) > 0) {
-           fwrite(readbuf, sizeof(char), cc, stdout);
+           if ((ssize_t) fwrite(readbuf, sizeof(char), cc, stdout) < cc) {
+               advise ("putline", "fwrite");
+           }
            lastchar = readbuf[cc - 1];
        }
 
            lastchar = readbuf[cc - 1];
        }
 
index dc7a0f0f7fa0de0f74ebdd04fa4f5f45123266b9..3ca4c7c677c0706b26f19319de0cd170e10a9b91 100644 (file)
@@ -783,7 +783,9 @@ losing:
                    break;
 
                default:
                    break;
 
                default:
-                   fwrite (buffer, sizeof(*buffer), cc, fp);
+                   if ((int) fwrite (buffer, sizeof(*buffer), cc, fp) < cc) {
+                       advise ("output_content_file", "fwrite");
+                   }
                    continue;
            }
            break;
                    continue;
            }
            break;
index 2d194a67204efffd8ac15c8aa088f9ccaf244743..15d03f0b3b4b1b79015a20d8179775c1fbab4891 100644 (file)
@@ -936,7 +936,9 @@ putline (char *s, FILE *iop)
            return NOTOK;
        }
 
            return NOTOK;
        }
 
-       fwrite(buf, buflen, 1, iop);
+       if (fwrite(buf, buflen, 1, iop) < 1) {
+           advise ("putline", "fwrite");
+       }
     }
 #endif /* CYRUS_SASL */
 
     }
 #endif /* CYRUS_SASL */