mike            Wed Mar  8 22:00:21 2006 UTC

  Modified files:              (Branch: PHP_5_1)
    /php-src/ext/standard       http.c 
    /php-src    NEWS 
  Log:
  - Fix bug #36656 (http_build_query generates invalid URIs due to use of 
square brackets)
  
  
http://cvs.php.net/viewcvs.cgi/php-src/ext/standard/http.c?r1=1.14.2.3&r2=1.14.2.4&diff_format=u
Index: php-src/ext/standard/http.c
diff -u php-src/ext/standard/http.c:1.14.2.3 
php-src/ext/standard/http.c:1.14.2.4
--- php-src/ext/standard/http.c:1.14.2.3        Sun Jan  1 12:50:14 2006
+++ php-src/ext/standard/http.c Wed Mar  8 22:00:21 2006
@@ -16,7 +16,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: http.c,v 1.14.2.3 2006/01/01 12:50:14 sniper Exp $ */
+/* $Id: http.c,v 1.14.2.4 2006/03/08 22:00:21 mike Exp $ */
 
 #include "php_http.h"
 #include "php_ini.h"
@@ -82,7 +82,7 @@
                if (Z_TYPE_PP(zdata) == IS_ARRAY || Z_TYPE_PP(zdata) == 
IS_OBJECT) {
                        if (key_type == HASH_KEY_IS_STRING) {
                                ekey = php_url_encode(key, key_len, &ekey_len);
-                               newprefix_len = key_suffix_len + ekey_len + 
key_prefix_len + 1;
+                               newprefix_len = key_suffix_len + ekey_len + 
key_prefix_len + 3 /* %5B */;
                                newprefix = emalloc(newprefix_len + 1);
                                p = newprefix;
 
@@ -99,13 +99,14 @@
                                        memcpy(p, key_suffix, key_suffix_len);
                                        p += key_suffix_len;
                                }
-
-                               *(p++) = '[';
+                               *(p++) = '%';
+                               *(p++) = '5';
+                               *(p++) = 'B';
                                *p = '\0';
                        } else {
                                /* Is an integer key */
                                ekey_len = spprintf(&ekey, 12, "%ld", idx);
-                               newprefix_len = key_prefix_len + num_prefix_len 
+ ekey_len + key_suffix_len + 1;
+                               newprefix_len = key_prefix_len + num_prefix_len 
+ ekey_len + key_suffix_len + 3 /* %5B */;
                                newprefix = emalloc(newprefix_len + 1);
                                p = newprefix;
 
@@ -125,11 +126,13 @@
                                        memcpy(p, key_suffix, key_suffix_len);
                                        p += key_suffix_len;
                                }
-                               *(p++) = '[';
+                               *(p++) = '%';
+                               *(p++) = '5';
+                               *(p++) = 'B';
                                *p = '\0';
                        }
                        ht->nApplyCount++;
-                       php_url_encode_hash_ex(HASH_OF(*zdata), formstr, NULL, 
0, newprefix, newprefix_len, "]", 1, (Z_TYPE_PP(zdata) == IS_OBJECT ? *zdata : 
NULL), arg_sep TSRMLS_CC);
+                       php_url_encode_hash_ex(HASH_OF(*zdata), formstr, NULL, 
0, newprefix, newprefix_len, "%5D", 3, (Z_TYPE_PP(zdata) == IS_OBJECT ? *zdata 
: NULL), arg_sep TSRMLS_CC);
                        ht->nApplyCount--;
                        efree(newprefix);
                } else if (Z_TYPE_PP(zdata) == IS_NULL || Z_TYPE_PP(zdata) == 
IS_RESOURCE) {
http://cvs.php.net/viewcvs.cgi/php-src/NEWS?r1=1.2027.2.448&r2=1.2027.2.449&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.448 php-src/NEWS:1.2027.2.449
--- php-src/NEWS:1.2027.2.448   Tue Mar  7 19:29:04 2006
+++ php-src/NEWS        Wed Mar  8 22:00:21 2006
@@ -48,6 +48,8 @@
 - Fixed tiger hash algorithm generating wrong results on big endian platforms.
   (Mike)
 - Fixed crash with DOMImplementation::createDocumentType("name:"). (Mike)
+- Fixed bug #36656 (http_build_query generates invalid URIs due to use of 
+  square brackets). (Mike)
 - Fixed bug #36638 (strtotime() returns false when 2nd argument < 1). (Derick)
 - Fixed bug #36625 (pg_trace() does not work). (iakio at mono-space dot net)
 - Fixed bug #36611 (assignment to SimpleXML object attribute changes argument 

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

Reply via email to