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 Received on Sat 31 Mar 2001 06:30:51 PM GMT
This archive was generated by hypermail 2.3.0 : Sat 13 Mar 2010 03:46:12 AM GMT GMT