diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2006-09-13 03:00:54 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2006-09-13 03:00:54 +0000 |
commit | d7a5fbadd02bc9e47459c6280cdfd20d18620803 (patch) | |
tree | ca0803e86c02505bb1f96504b7306ca8b1b4b1b7 | |
parent | 4d9afa7a09f676b976a048393456af5f8dbe90e2 (diff) |
procmime_decode_content(): fflush temporary file and check errors.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@1154 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | ChangeLog.ja | 5 | ||||
-rw-r--r-- | libsylph/procmime.c | 20 |
3 files changed, 30 insertions, 0 deletions
@@ -1,3 +1,8 @@ +2006-09-13 + + * libsylph/procmime.c: procmime_decode_content(): fflush temporary + file and check errors. + 2006-09-12 * src/importldif.c: change cancel button to close when import diff --git a/ChangeLog.ja b/ChangeLog.ja index 16abc786..4b8800ff 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,3 +1,8 @@ +2006-09-13 + + * libsylph/procmime.c: procmime_decode_content(): 一時ファイルを + fflush し、エラーをチェックするようにした。 + 2006-09-12 * src/importldif.c: インポートが完了したらキャンセルボタンを閉じる diff --git a/libsylph/procmime.c b/libsylph/procmime.c index 193c23e0..98088ad6 100644 --- a/libsylph/procmime.c +++ b/libsylph/procmime.c @@ -829,6 +829,12 @@ FILE *procmime_decode_content(FILE *outfp, FILE *infp, MimeInfo *mimeinfo) } if (normalize_lbreak) { + if (fflush(tmpfp) == EOF) { + perror("fflush"); + fclose(tmpfp); + if (tmp_file) fclose(outfp); + return NULL; + } rewind(tmpfp); while (fgets(buf, sizeof(buf), tmpfp) != NULL) { #ifdef G_OS_WIN32 @@ -872,6 +878,12 @@ FILE *procmime_decode_content(FILE *outfp, FILE *infp, MimeInfo *mimeinfo) base64_decoder_free(decoder); if (normalize_lbreak) { + if (fflush(tmpfp) == EOF) { + perror("fflush"); + fclose(tmpfp); + if (tmp_file) fclose(outfp); + return NULL; + } rewind(tmpfp); while (fgets(buf, sizeof(buf), tmpfp) != NULL) { #ifdef G_OS_WIN32 @@ -924,6 +936,14 @@ FILE *procmime_decode_content(FILE *outfp, FILE *infp, MimeInfo *mimeinfo) } } + if (fflush(outfp) == EOF) + perror("fflush"); + if (ferror(outfp) != 0) { + g_warning("procmime_decode_content(): Can't write to temporary file\n"); + if (tmp_file) fclose(outfp); + return NULL; + } + if (tmp_file) rewind(outfp); return outfp; } |