Check the return value of fread/fwrite so the compiler doesn't complain. Only a
authorSean Bright <sean@malleable.com>
Fri, 5 Dec 2008 02:47:54 +0000 (02:47 +0000)
committerSean Bright <sean@malleable.com>
Fri, 5 Dec 2008 02:47:54 +0000 (02:47 +0000)
problem when IMAP_STORAGE is enabled.

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@161147 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_voicemail.c

index 65a17c0..ba8a7ab 100644 (file)
@@ -1784,7 +1784,12 @@ static int imap_store_file(char *dir, char *mailboxuser, char *mailboxcontext, i
                        *(vmu->email) = '\0';
                return -1;
        }
-       fread(buf, len, 1, p);
+       if (fread(buf, len, 1, p) < len) {
+               if (ferror(p)) {
+                       ast_log(LOG_ERROR, "Short read while reading in mail file.\n");
+                       return -1;
+               }
+       }
        ((char *)buf)[len] = '\0';
        INIT(&str, mail_string, buf, len);
        ret = init_mailstream(vms, NEW_FOLDER);
@@ -2131,7 +2136,11 @@ static void write_file(char *filename, char *buffer, unsigned long len)
        FILE *output;
 
        output = fopen (filename, "w");
-       fwrite (buffer, len, 1, output);
+       if (fwrite(buffer, len, 1, output) < len) {
+               if (ferror(output)) {
+                       ast_log(LOG_ERROR, "Short write while writing e-mail body.\n");
+               }
+       }
        fclose (output);
 }