httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dean Gaudet <dgau...@arctic.org>
Subject Re: cvs commit: apache-1.3/src/main http_protocol.c
Date Sat, 21 Feb 1998 09:07:03 GMT


On Fri, 20 Feb 1998, Roy T. Fielding wrote:

> >  1.190     +10 -4     apache-1.3/src/main/http_protocol.c
> >  
> >  Index: http_protocol.c
> >  ===================================================================
> >  RCS file: /export/home/cvs/apache-1.3/src/main/http_protocol.c,v
> >  retrieving revision 1.189
> >  retrieving revision 1.190
> >  diff -u -r1.189 -r1.190
> >  --- http_protocol.c	1998/02/18 11:59:20	1.189
> >  +++ http_protocol.c	1998/02/21 01:18:28	1.190
> >  @@ -628,6 +628,7 @@
> >       char *host, *proto, *slash, *colon;
> >       int plen;
> >       unsigned port;
> >  +    const char *res_uri;
> >   
> >       /* This routine parses full URLs, if they match the server */
> >       proto = http_method(r);
> >  @@ -664,15 +665,20 @@
> >           return uri;
> >   
> >       /* Save it for later use */
> >  -    r->hostname = pstrdup(r->pool, host);
> >  +    r->hostname = host;
> >       r->hostlen = plen + 3 + slash - host;
> >  +    res_uri = uri + r->hostlen;
> >  +    /* deal with "http://host" */
> >  +    if (*res_uri == '\0') {
> >  +	res_uri = "/";
> >  +    }
> 
> Ummm, that can't be right.  I'm not sure what it is doing, but I'm
> pretty sure it isn't doing anything good.  But I can't find my C hat
> at the moment.

Which?  The return value of check_fulluri() is a const char *, "/" is a
valid const char *.  parse_uri, which is called next, goes ahead and
strdups it. 

Or are you complaining about r->hostlen = plen + 3 + slash - host?  That's
an int + int + ptrdiff_t ... which is valid too. 

Take a look at the patch in the context of the entire routine.  I mean
I'll completely admit that check_fulluri() is broken, and I really want to
fix it.  But it's non-trivial given the lame semantics of absoluteURIs... 
which I'll complain about in another message. 

Dean



Mime
View raw message