summaryrefslogtreecommitdiffstats
path: root/abs/extra/alpine/CVE-2008-5514.patch
diff options
context:
space:
mode:
Diffstat (limited to 'abs/extra/alpine/CVE-2008-5514.patch')
-rw-r--r--abs/extra/alpine/CVE-2008-5514.patch20
1 files changed, 20 insertions, 0 deletions
diff --git a/abs/extra/alpine/CVE-2008-5514.patch b/abs/extra/alpine/CVE-2008-5514.patch
new file mode 100644
index 0000000..594bea0
--- /dev/null
+++ b/abs/extra/alpine/CVE-2008-5514.patch
@@ -0,0 +1,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;
+ }