File 09-vmime-phf-stop-on-whitespace.diff of Package libvmime_zarafa7
For certain broken input mail which forgets to use the semicolon in e.g.
Content-Type: text/plain charset=utf-8
---
src/parameterizedHeaderField.cpp | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
Index: vmime/src/parameterizedHeaderField.cpp
===================================================================
--- vmime.orig/src/parameterizedHeaderField.cpp
+++ vmime/src/parameterizedHeaderField.cpp
@@ -97,7 +97,7 @@ void parameterizedHeaderField::parse(con
// Advance up to ';', if any
string::size_type valueLength = 0;
- while (p < pend && *p != ';') // FIXME: support ";" inside quoted or RFC-2047-encoded text
+ while (p < pend && *p != ';' && (!parserHelpers::isSpace(*p))) // FIXME: support ";" inside quoted or RFC-2047-encoded text
{
++p;
++valueLength;
@@ -118,6 +118,10 @@ void parameterizedHeaderField::parse(con
{
std::map <string, paramInfo> params;
+ if (*p != ';')
+ while (p < pend && *p != ';') // FIXME: support ";" inside quoted or RFC-2047-encoded text
+ ++p;
+
while (*p == ';')
{
// Skip ';'