summaryrefslogtreecommitdiffstats
path: root/abs/extra-testing/alpine/CVE-2008-5514.patch
blob: 594bea0b2526c7ebd035cebce0ed4b36afb892d9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
--- alpine-2.00/imap/src/c-client/rfc822.c
+++ alpine-2.00/imap/src/c-client/rfc822.c
@@ -1351,6 +1351,7 @@
 
 static long rfc822_output_char (RFC822BUFFER *buf,int c)
 {
+  if ((buf->cur == buf->end) && !rfc822_output_flush (buf)) return NIL;
   *buf->cur++ = c;		/* add character, soutr buffer if full */
   return (buf->cur == buf->end) ? rfc822_output_flush (buf) : LONGT;
 }
@@ -1374,7 +1375,8 @@
       len -= i;
     }
 				/* soutr buffer now if full */
-    if (len && !rfc822_output_flush (buf)) return NIL;
+    if ((len || (buf->cur == buf->end)) && !rfc822_output_flush (buf))
+      return NIL;
   }
   return LONGT;
 }