-1 Veto.

You aren't checking the scheme (other than that we've dumped CONNECT earlier
in the code) so you don't know that this transform is appropriate.  If you
would like to test that scheme applies, you still have the question of unusual
methods (eg non-GET/non-POST)

[EMAIL PROTECTED] wrote:
Author: rpluem
Date: Mon Apr 10 12:59:33 2006
New Revision: 393037

URL: http://svn.apache.org/viewcvs?rev=393037&view=rev
Log:
* Prevent r->parsed_uri.path from being NULL as this can cause segmentation
  faults e.g. in mod_cache. Set it to "/" in this case.

PR: 39259
Submitted by: Davi Arnaut <davi haxent.com.br>
Reviewed by: rpluem

Modified:
    httpd/httpd/trunk/CHANGES
    httpd/httpd/trunk/server/protocol.c

Modified: httpd/httpd/trunk/CHANGES
URL: 
http://svn.apache.org/viewcvs/httpd/httpd/trunk/CHANGES?rev=393037&r1=393036&r2=393037&view=diff
==============================================================================
--- httpd/httpd/trunk/CHANGES [utf-8] (original)
+++ httpd/httpd/trunk/CHANGES [utf-8] Mon Apr 10 12:59:33 2006
@@ -2,6 +2,9 @@
 Changes with Apache 2.3.0
   [Remove entries to the current 2.0 and 2.2 section below, when backported]
+ *) core: Set the path of a parsed uri in a request to "/" if the path is
+     NULL. PR 39259. [Davi Arnaut <davi haxent.com.br>]
+
   *) htdbm: Warn the user when adding a plaintext password on a platform
      where it wouldn't work with the server (i.e., anywhere that has
      crypt()).  [Jeff Trawick]

Modified: httpd/httpd/trunk/server/protocol.c
URL: 
http://svn.apache.org/viewcvs/httpd/httpd/trunk/server/protocol.c?rev=393037&r1=393036&r2=393037&view=diff
==============================================================================
--- httpd/httpd/trunk/server/protocol.c (original)
+++ httpd/httpd/trunk/server/protocol.c Mon Apr 10 12:59:33 2006
@@ -518,9 +518,11 @@
             r->hostname = r->parsed_uri.hostname;
         }
+ if (r->parsed_uri.path == NULL)
+            r->parsed_uri.path = apr_pstrdup(r->pool, "/");
+
         r->args = r->parsed_uri.query;
-        r->uri = r->parsed_uri.path ? r->parsed_uri.path
-                 : apr_pstrdup(r->pool, "/");
+        r->uri = r->parsed_uri.path;
#if defined(OS2) || defined(WIN32)
         /* Handle path translations for OS/2 and plug security hole.





Reply via email to