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