From 2b4bfa3c7767cb5d2c480b382fd5e1347c6e9e2c Mon Sep 17 00:00:00 2001 From: Sean Bright Date: Fri, 5 Dec 2008 02:51:48 +0000 Subject: [PATCH] Merged revisions 161147 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r161147 | seanbright | 2008-12-04 21:47:54 -0500 (Thu, 04 Dec 2008) | 3 lines Check the return value of fread/fwrite so the compiler doesn't complain. Only a problem when IMAP_STORAGE is enabled. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.0@161148 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_voicemail.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c index 50acc066d0..f44ecc49b5 100644 --- a/apps/app_voicemail.c +++ b/apps/app_voicemail.c @@ -1419,7 +1419,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); init_mailstream(vms, NEW_FOLDER); @@ -1840,7 +1845,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); }