Re: logic error in httpHdrRangeSpecParseCreate

2007-09-08 Thread Pierangelo Masarati

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

2007-09-08 Thread Adrian Chadd
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

2007-09-07 Thread Wenzhuo Zhang

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 {