char *dest;
const char *data;
apr_size_t dlen;
- int i;
+ int i, eol = 0;
param = apreq_param_make(pool, NULL, nlen, NULL, vlen);
*(const apreq_value_t **)&v = ¶m->v;
for (off = 0; off < dlen; ++off) {
const char ch = data[off];
if (ch == '\r' || ch == '\n') {
- /* skip continuation CRLF(s) */
+ /* Eat [CR]LF of continuation or end of line */
+ if (!vlen && ch == '\n')
+ eol = 1; /* done */
continue;
}
assert(vlen > 0);
}
e = APR_BUCKET_NEXT(e);
- } while (vlen > 0);
+ } while (!eol);
v->dlen = dest - v->data;
*dest++ = 0;