![]()
From: Greg Shenaut (greg@bogslab.ucdavis.edu)
Date: Fri Mar 30 2001 - 14:25:44 CST
Sorry for not sending patches, but here are some fixes marked
with "BOGS".
First, in parse.c
parse.c-777- /* base64 decoding */
parse.c-778- int len;
parse.c-779- base64Decode(ptr, output, &len);
parse.c:780: output += len ; /* BOGS was len - 1 */
parse.c-781- }
parse.c-782- else {
parse.c-783- /* unsupported encoding type */
This caused the last character of rfc2047-encoded usernames to
be chopped off.
Second, in libcgi/form_ent.c
form_ent.c-162- int asize;
form_ent.c-163- int i;
form_ent.c-164- int c;
form_ent.c:165: int c1, c2; /* BOGS */
form_ent.c-166-
form_ent.c-167- while (isspace(c = getccl(stream, length)) || c == '&');
form_ent.c-168- if (c == EOF)
-- form_ent.c-183- fe->name[i] = ' '; form_ent.c-184- break; form_ent.c-185- case '%': form_ent.c:186: c1 = getccl(stream, length); /* BOGS */ form_ent.c:187: c2 = getccl(stream, length); /* BOGS */ form_ent.c:188: fe->name[i] = dd2c(c1, c2); /* BOGS */ form_ent.c-189- break; form_ent.c-190- default: form_ent.c-191- fe->name[i] = c; -- form_ent.c-215- fe->val[i] = ' '; form_ent.c-216- break; form_ent.c-217- case '%': form_ent.c:218: c1 = getccl(stream, length); /* BOGS */ form_ent.c:219: c2 = getccl(stream, length); /* BOGS */ form_ent.c:220: fe->val[i] = dd2c(c1, c2); /* BOGS */ form_ent.c-221- break; form_ent.c-222- default: form_ent.c-223- fe->val[i] = c; The old code reversed the order of urlencoded bytes on my FreeBSD/gcc system. Greg Shenaut
![]()