Re: logic error in httpHdrRangeSpecParseCreate
Wenzhuo Zhang wrote: Hi, squid developers When reading squid-2.6-STABLE15 source code, I found a logical error in the if statement at src/HttpHdrRange.c line 96: if (!((p = strchr(field, '-')) || (p - field = flen))) { If p is NULL, (p - field) is meaningless. If p is not NULL, the latter expression won't be evaluated. The statement should really be: if (!((p = strchr(field, '-')) (p - field flen))) { Attaching a diff which fixes the logical error. I'm not a Squid developer, but your diagnosis sounds right. Just in case, I think you should file a bug http://www.squid-cache.org/bugs/ so the fix, if confirmed, can be tracked. Cheers, p. Ing. Pierangelo Masarati OpenLDAP Core Team SysNet s.r.l. via Dossi, 8 - 27100 Pavia - ITALIA http://www.sys-net.it --- Office: +39 02 23998309 Mobile: +39 333 4963172 Email: [EMAIL PROTECTED] ---
Re: logic error in httpHdrRangeSpecParseCreate
On Sat, Sep 08, 2007, Pierangelo Masarati wrote: I'm not a Squid developer, but your diagnosis sounds right. Just in case, I think you should file a bug http://www.squid-cache.org/bugs/ so the fix, if confirmed, can be tracked. You analysed a bug; you're a squid developer now! Adrian
logic error in httpHdrRangeSpecParseCreate
Hi, squid developers When reading squid-2.6-STABLE15 source code, I found a logical error in the if statement at src/HttpHdrRange.c line 96: if (!((p = strchr(field, '-')) || (p - field = flen))) { If p is NULL, (p - field) is meaningless. If p is not NULL, the latter expression won't be evaluated. The statement should really be: if (!((p = strchr(field, '-')) (p - field flen))) { Attaching a diff which fixes the logical error. Wenzhuo --- src/HttpHdrRange.c.original 2006-04-28 18:17:18.0 +0800 +++ src/HttpHdrRange.c 2007-09-06 16:36:17.0 +0800 @@ -93,7 +93,7 @@ return NULL; } else /* must have a '-' somewhere in _this_ field */ -if (!((p = strchr(field, '-')) || (p - field = flen))) { +if (!((p = strchr(field, '-')) (p - field flen))) { debug(64, 2) (ignoring invalid (missing '-') range-spec near: '%s'\n, field); return NULL; } else {