fix unwrapping of folded lines.
authorWilfried Goesgens <dothebart@citadel.org>
Sun, 1 Dec 2013 23:55:27 +0000 (00:55 +0100)
committerWilfried Goesgens <dothebart@citadel.org>
Sun, 1 Dec 2013 23:55:27 +0000 (00:55 +0100)
citadel/internet_addressing.c

index 907d0eaac61719709fed8f5a7fcfbd00637d4bb0..83fcf4c04eca5a7e3c8433799ef7c84444db2d92 100644 (file)
@@ -991,15 +991,14 @@ void unfold_rfc822_field(char **field, char **FieldEnd)
        {
                if ((*sField=='\r') || (*sField=='\n'))
                {
-                       int offset = 1;
-
-                       if  (*(sField+1) == '\n')
-                               offset++;
-
-                       if (sField + offset == pFieldEnd)
-                               break;
-
-                       *pField = *sField + offset;
+                       int Offset = 1;
+                       while (((*(sField + Offset) == '\r') ||
+                               (*(sField + Offset) == '\n') ||
+                               (isspace(*(sField + Offset)))) && 
+                              (sField + Offset < pFieldEnd))
+                               Offset ++;
+                       sField += Offset;
+                       *pField = *sField;
                }
                else {
                        if (*sField=='\"') quote = 1 - quote;