iliaa           Mon Dec 30 11:42:49 2002 EDT

  Modified files:              
    /php4/ext/standard  url.c 
    /php4/ext/standard/tests/strings    url_t.phpt 
  Log:
  Fixed bug #21226 (parse_url handling of urls without a path).
  
  
Index: php4/ext/standard/url.c
diff -u php4/ext/standard/url.c:1.60 php4/ext/standard/url.c:1.61
--- php4/ext/standard/url.c:1.60        Thu Dec  5 15:59:49 2002
+++ php4/ext/standard/url.c     Mon Dec 30 11:42:49 2002
@@ -15,7 +15,7 @@
    | Author: Jim Winstead <[EMAIL PROTECTED]>                                  |
    +----------------------------------------------------------------------+
  */
-/* $Id: url.c,v 1.60 2002/12/05 20:59:49 helly Exp $ */
+/* $Id: url.c,v 1.61 2002/12/30 16:42:49 iliaa Exp $ */
 
 #include <stdlib.h>
 #include <string.h>
@@ -157,12 +157,16 @@
                goto nohost;
        }
        
-       if (!(e = strchr(s, '/'))) {
-               e = ue;
-       } else if (e && e == s) {
-               e = ue;
-       }
-
+       e = ue;
+       
+       if (!(p = strchr(s, '/'))) {
+               if ((p = strchr(s, '?'))) {
+                       e = p;
+               }
+       } else {
+               e = p;
+       }       
+               
        /* check for login and password */
        if ((p = memchr(s, '@', (e-s)))) {
                if ((pp = memchr(s, ':', (p-s)))) {
Index: php4/ext/standard/tests/strings/url_t.phpt
diff -u php4/ext/standard/tests/strings/url_t.phpt:1.4 
php4/ext/standard/tests/strings/url_t.phpt:1.5
--- php4/ext/standard/tests/strings/url_t.phpt:1.4      Thu Nov 14 08:40:13 2002
+++ php4/ext/standard/tests/strings/url_t.phpt  Mon Dec 30 11:42:49 2002
@@ -63,7 +63,8 @@
 'foo://foo@bar',
 'mailto:[EMAIL PROTECTED]',
 '/foo.php?a=b&c=d',
-'foo.php?a=b&c=d'
+'foo.php?a=b&c=d',
+'http://user:[EMAIL PROTECTED]:8080?bar=1&boom=0'
 );
 
     foreach ($sample_urls as $url) {
@@ -600,4 +601,18 @@
   string(7) "foo.php"
   ["query"]=>
   string(7) "a=b&c=d"
+}
+array(6) {
+  ["scheme"]=>
+  string(4) "http"
+  ["host"]=>
+  string(15) "www.example.com"
+  ["port"]=>
+  int(8080)
+  ["user"]=>
+  string(4) "user"
+  ["pass"]=>
+  string(6) "passwd"
+  ["query"]=>
+  string(12) "bar=1&boom=0"
 }



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to