Your message dated Sun, 25 Nov 2012 22:23:10 +0100
with message-id <[email protected]>
and subject line Re: Bug#693500: unblock: getmail4/4.32.0-2
has caused the Debian Bug report #693500,
regarding unblock: getmail4/4.32.0-2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
693500: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=693500
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: [email protected]
Usertags: unblock

Please unblock package getmail4

getmail used mboxo while claiming to use mboxrd.  The use of mboxo
format causes irrecoverable data corruption as reported in #633799.

The upstream has accepted this bug report and released fixed version as
4.35.

I have made an updated Debian 4.32-3 package to address only #633799
by using the diff in the upstream source 4.34->4.35.  This update has
been in good shape at the upstream for over 3 weeks.  So it is time for
Debian to use it to fix data corruption.

(There were feature enhancement release as 4.33 and 4.34 which are not
included in this update).

unblock getmail4/4.32.0-2

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'testing'), (10, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 3.6-trunk-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_US.utf8, LC_CTYPE=en_US.utf8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
diff -Nru getmail4-4.32.0/debian/changelog getmail4-4.32.0/debian/changelog
--- getmail4-4.32.0/debian/changelog    2012-07-12 01:00:56.000000000 +0900
+++ getmail4-4.32.0/debian/changelog    2012-11-16 20:33:24.000000000 +0900
@@ -1,3 +1,10 @@
+getmail4 (4.32.0-2) unstable; urgency=low
+
+  * Prevent mail data corruption by the mboxo format by applying 
+    upstream 4.35 patch to use the mboxrd format. Closes: #633799
+
+ -- Osamu Aoki <[email protected]>  Fri, 16 Nov 2012 20:31:42 +0900
+
 getmail4 (4.32.0-1) unstable; urgency=low
 
   * New upstream release.
diff -Nru getmail4-4.32.0/debian/patches/series 
getmail4-4.32.0/debian/patches/series
--- getmail4-4.32.0/debian/patches/series       2012-07-12 00:43:53.000000000 
+0900
+++ getmail4-4.32.0/debian/patches/series       2012-11-16 20:21:59.000000000 
+0900
@@ -1,2 +1,3 @@
 getmail_python-header.patch
 getmail_python-modules.patch
+upstream.4.35.0.patch
diff -Nru getmail4-4.32.0/debian/patches/upstream.4.35.0.patch 
getmail4-4.32.0/debian/patches/upstream.4.35.0.patch
--- getmail4-4.32.0/debian/patches/upstream.4.35.0.patch        1970-01-01 
09:00:00.000000000 +0900
+++ getmail4-4.32.0/debian/patches/upstream.4.35.0.patch        2012-11-16 
20:21:42.000000000 +0900
@@ -0,0 +1,85 @@
+Description: Upstream 4.35 patch to address data corruption
+ Note on mangle_from: the Python email.Generator class apparently only
+ quotes "From ", not ">From " (i.e. it uses mboxo format instead of
+ mboxrd).  So we don't use its mangling, and do it by hand instead.
+Author: Charles Cazabon
+diff --git a/getmailcore/message.py b/getmailcore/message.py
+index 0137ba3..0e54ef8 100755
+--- a/getmailcore/message.py
++++ b/getmailcore/message.py
+@@ -10,6 +10,7 @@ __all__ = [
+ import os
+ import time
+ import cStringIO
++import re
+ import email
+ import email.Errors
+ import email.Utils
+@@ -29,6 +30,9 @@ message_attributes = (
+     'recipient'
+ )
+ 
++RE_FROMLINE = re.compile(r'^(>*From )', re.MULTILINE)
++
++
+ #######################################
+ def corrupt_message(why, fromlines=None, fromstring=None):
+     log = getmailcore.logging.Logger()
+@@ -130,19 +134,25 @@ class Message(object):
+         it by writing out what we need, letting the generator write out the
+         message, splitting it into lines, and joining them with the platform
+         EOL.
++        
++        Note on mangle_from: the Python email.Generator class apparently only
++        quotes "From ", not ">From " (i.e. it uses mboxo format instead of
++        mboxrd).  So we don't use its mangling, and do it by hand instead.
+         '''
+-        f = cStringIO.StringIO()
+         if include_from:
+-            # This needs to be written out first, so we can't rely on the
+-            # generator
+-            f.write('From %s %s' % (mbox_from_escape(self.sender),
+-                                    time.asctime()) + os.linesep)
++            # Mbox-style From line, not rfc822 From: header field.
++            fromline = 'From %s %s' % (mbox_from_escape(self.sender),
++                                       time.asctime()) + os.linesep
++        else:
++            fromline = ''
+         # Write the Return-Path: header
+-        f.write(format_header('Return-Path', '<%s>' % self.sender))
++        rpline = format_header('Return-Path', '<%s>' % self.sender)
+         # Remove previous Return-Path: header fields.
+         del self.__msg['Return-Path']
+         if delivered_to:
+-            f.write(format_header('Delivered-To', self.recipient or 
'unknown'))
++            dtline = format_header('Delivered-To', self.recipient or 
'unknown')
++        else:
++            dtline = ''
+         if received:
+             content = 'from %s by %s with %s' % (
+                 self.received_from, self.received_by, self.received_with
+@@ -151,13 +161,20 @@ class Message(object):
+                 content += ' for <%s>' % self.recipient
+             content += '; ' + time.strftime('%d %b %Y %H:%M:%S -0000',
+                                             time.gmtime())
+-            f.write(format_header('Received', content))
+-        gen = Generator(f, mangle_from, 0)
++            receivedline = format_header('Received', content)
++        else:
++            receivedline = ''
+         # From_ handled above, always tell the generator not to include it
+         try:
++            tmpf = cStringIO.StringIO()
++            gen = Generator(tmpf, False, 0)
+             gen.flatten(self.__msg, False)
+-            f.seek(0)
+-            return os.linesep.join(f.read().splitlines() + [''])
++            strmsg = tmpf.getvalue()
++            if mangle_from:
++                # do mboxrd-style "From " line quoting
++                strmsg = RE_FROMLINE.sub(r'>\1', strmsg)
++            return (fromline + rpline + dtline + receivedline 
++                    + os.linesep.join(strmsg.splitlines() + ['']))
+         except TypeError, o:
+             # email module chokes on some badly-misformatted messages, even
+             # late during flatten().  Hope this is fixed in Python 2.4.

--- End Message ---
--- Begin Message ---
On 11/17/2012 08:11 AM, Osamu Aoki wrote:
> Package: release.debian.org
> Severity: normal
> User: [email protected]
> Usertags: unblock
> 
> Please unblock package getmail4
> 

Unblocked.

Thanks for your work.

-- 
Mehdi Dogguy مهدي الدڤي
http://dogguy.org/

--- End Message ---

Reply via email to