]> git.marmaro.de Git - mmh/blobdiff - sbr/m_getfld2.c
add irc channel to README
[mmh] / sbr / m_getfld2.c
index 954ed331cef3e8c4811e8874051ea4bfde3b7d0e..b9a618d166e245a37854003610f5a9cb1576ef0c 100644 (file)
@@ -62,7 +62,8 @@ m_getfld2(enum state s, struct field *f, FILE *msg)
                        }
                }
 
-               if (nchars > NAMESZ) {
+               f->crlf = (nchars > 2 && tmpline[nchars-2] == '\r');
+               if (nchars > NAMESZ+1 || (!f->crlf && nchars > NAMESZ)) {
                        ret = LENERR2;
                }
 
@@ -103,7 +104,7 @@ m_getfld2(enum state s, struct field *f, FILE *msg)
                                return IOERR2;
                        }
 
-                       if (nchars > NAMESZ) {
+                       if (nchars > NAMESZ+1 || (!f->crlf && nchars > NAMESZ)) {
                                ret = LENERR2;
                        }
 
@@ -145,6 +146,7 @@ m_getfld2(enum state s, struct field *f, FILE *msg)
                        }
                }
 
+               f->crlf = (nchars > 2 && tmpline[nchars-2] == '\r');
                free(f->value);
                f->value = tmpline;
                f->valuelen = nchars;