Package: libmimelib1c2a
Version: 5:1.1.4-2
Severity: important
Tags: patch upstream

Dear Maintainer,
*** Please consider answering these questions, where appropriate ***

   * What led up to the situation?
   * What exactly did you do (or not do) that was effective (or
     ineffective)?
   * What was the outcome of this action?
   * What outcome did you expect instead?

*** End of the template - remove these lines ***


Lurker (email archiver) would generate invalid xml / html when an email had an 
attachment with a long filename. Lurker uses this library to handle mime-parts 
of messages. It was expected that the library would return the mime-part 
headers in an unfolded (un line-wrapped) form. Unfortunately, the headers were 
not being unfolded. 

The attached patch adds unfolding of the header body.  


-- System Information:
Debian Release: 7.3
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 3.2.0-4-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages libmimelib1c2a depends on:
ii  libc6       2.13-38
ii  libgcc1     1:4.7.2-5
ii  libstdc++6  4.7.2-5

libmimelib1c2a recommends no packages.

libmimelib1c2a suggests no packages.
diff -r mimelib1-1.1.4-2/mimelib/field.cpp mimelib1-1.1.4-2.fixed/mimelib/field.cpp
277a278,291
> DwString DwField::Unfold (const DwString& aStr)
> {
>     const char *str = aStr.c_str();
>     DwString out;
> 
>     while (*str != 0) {
>         if (*str != '\r' && *str != '\n') {
>             out += *str;
>         }
>         str++;
>     }
> 
>     return out;
> }
284c298
<     mFieldBodyStr = parser.mBody;
---
>     mFieldBodyStr = this->Unfold(parser.mBody);
diff -r mimelib1-1.1.4-2/mimelib/mimelib/field.h mimelib1-1.1.4-2.fixed/mimelib/mimelib/field.h
105a106,108
>     DwString Unfold(const DwString& aStr);
>     //Unfold method for unwrapping headers
> 
diff -r mimelib1-1.1.4-2/mimelib/field.cpp mimelib1-1.1.4-2.fixed/mimelib/field.cpp
277a278,291
> DwString DwField::Unfold (const DwString& aStr)
> {
>     const char *str = aStr.c_str();
>     DwString out;
> 
>     while (*str != 0) {
>         if (*str != '\r' && *str != '\n') {
>             out += *str;
>         }
>         str++;
>     }
> 
>     return out;
> }
284c298
<     mFieldBodyStr = parser.mBody;
---
>     mFieldBodyStr = this->Unfold(parser.mBody);
diff -r mimelib1-1.1.4-2/mimelib/mimelib/field.h mimelib1-1.1.4-2.fixed/mimelib/mimelib/field.h
105a106,108
>     DwString Unfold(const DwString& aStr);
>     //Unfold method for unwrapping headers
> 
diff -r mimelib1-1.1.4-2/mimelib/field.cpp mimelib1-1.1.4-2.fixed/mimelib/field.cpp
277a278,291
> DwString DwField::Unfold (const DwString& aStr)
> {
>     const char *str = aStr.c_str();
>     DwString out;
> 
>     while (*str != 0) {
>         if (*str != '\r' && *str != '\n') {
>             out += *str;
>         }
>         str++;
>     }
> 
>     return out;
> }
284c298
<     mFieldBodyStr = parser.mBody;
---
>     mFieldBodyStr = this->Unfold(parser.mBody);
diff -r mimelib1-1.1.4-2/mimelib/mimelib/field.h mimelib1-1.1.4-2.fixed/mimelib/mimelib/field.h
105a106,108
>     DwString Unfold(const DwString& aStr);
>     //Unfold method for unwrapping headers
> 
diff -r mimelib1-1.1.4-2/mimelib/field.cpp mimelib1-1.1.4-2.fixed/mimelib/field.cpp
277a278,291
> DwString DwField::Unfold (const DwString& aStr)
> {
>     const char *str = aStr.c_str();
>     DwString out;
> 
>     while (*str != 0) {
>         if (*str != '\r' && *str != '\n') {
>             out += *str;
>         }
>         str++;
>     }
> 
>     return out;
> }
284c298
<     mFieldBodyStr = parser.mBody;
---
>     mFieldBodyStr = this->Unfold(parser.mBody);
diff -r mimelib1-1.1.4-2/mimelib/mimelib/field.h mimelib1-1.1.4-2.fixed/mimelib/mimelib/field.h
105a106,108
>     DwString Unfold(const DwString& aStr);
>     //Unfold method for unwrapping headers
> 

Reply via email to