Author: ken
Date: 2008-07-12 13:22:18 -0600 (Sat, 12 Jul 2008)
New Revision: 1967

Added:
   trunk/fetchmail/
   trunk/fetchmail/fetchmail-6.3.8-security_fixes-1.patch
Log:
Patch the known fetchmail vulnerabilities.

Added: trunk/fetchmail/fetchmail-6.3.8-security_fixes-1.patch
===================================================================
--- trunk/fetchmail/fetchmail-6.3.8-security_fixes-1.patch                      
        (rev 0)
+++ trunk/fetchmail/fetchmail-6.3.8-security_fixes-1.patch      2008-07-12 
19:22:18 UTC (rev 1967)
@@ -0,0 +1,72 @@
+Submitted By: Ken Moffat <ken at linuxfromscratch dot org>
+Date: 2008-07-12
+Initial Package Version: 6.3.8
+Upstream Status: From Upstream
+Origin: Fetchmail security advisories SA-2007-02 and SA-2008-01
+Description: Fixes vulnerabilities CVE-2007-4565 and CVE-2008-2711.
+
+diff -Naur fetchmail-6.3.8.orig/report.c fetchmail-6.3.8/report.c
+--- fetchmail-6.3.8.orig/report.c      2006-03-14 08:53:31.000000000 +0000
++++ fetchmail-6.3.8/report.c   2008-07-12 19:40:16.000000000 +0100
+@@ -238,11 +238,17 @@
+     rep_ensuresize();
+ 
+ #if defined(VA_START)
+-    VA_START (args, message);
+     for ( ; ; )
+     {
++      /*
++       * args has to be initialized before every call of vsnprintf(), 
++       * because vsnprintf() invokes va_arg macro and thus args is 
++       * undefined after the call.
++       */
++      VA_START(args, message);
+       n = vsnprintf (partial_message + partial_message_size_used, 
partial_message_size - partial_message_size_used,
+                      message, args);
++      va_end (args);
+ 
+       if (n >= 0
+           && (unsigned)n < partial_message_size - partial_message_size_used)
+@@ -254,7 +260,6 @@
+       partial_message_size += 2048;
+       partial_message = REALLOC (partial_message, partial_message_size);
+     }
+-    va_end (args);
+ #else
+     for ( ; ; )
+     {
+@@ -304,12 +309,13 @@
+     rep_ensuresize();
+ 
+ #if defined(VA_START)
+-    VA_START (args, message);
+     for ( ; ; )
+     {
++      VA_START(args, message);
+       n = vsnprintf (partial_message + partial_message_size_used,
+                      partial_message_size - partial_message_size_used,
+                      message, args);
++      va_end(args);
+ 
+       /* old glibc versions return -1 for truncation */
+       if (n >= 0
+@@ -322,7 +328,6 @@
+       partial_message_size += 2048;
+       partial_message = REALLOC (partial_message, partial_message_size);
+     }
+-    va_end (args);
+ #else
+     for ( ; ; )
+     {
+diff -Naur fetchmail-6.3.8.orig/sink.c fetchmail-6.3.8/sink.c
+--- fetchmail-6.3.8.orig/sink.c        2007-03-29 23:45:17.000000000 +0100
++++ fetchmail-6.3.8/sink.c     2008-07-12 19:40:08.000000000 +0100
+@@ -262,7 +262,7 @@
+     const char *md1 = "MAILER-DAEMON", *md2 = "MAILER-DAEMON@";
+ 
+     /* don't bounce in reply to undeliverable bounces */
+-    if (!msg->return_path[0] ||
++    if (!msg || !msg->return_path[0] ||
+       strcmp(msg->return_path, "<>") == 0 ||
+       strcasecmp(msg->return_path, md1) == 0 ||
+       strncasecmp(msg->return_path, md2, strlen(md2)) == 0)

-- 
http://linuxfromscratch.org/mailman/listinfo/patches
FAQ: http://www.linuxfromscratch.org/faq/
Unsubscribe: See the above information page

Reply via email to