diff options
-rw-r--r-- | NEWS | 2 | ||||
-rw-r--r-- | ext/standard/http.c | 9 | ||||
-rw-r--r-- | ext/standard/tests/strings/bug77608.phpt | 11 |
3 files changed, 13 insertions, 9 deletions
@@ -43,6 +43,8 @@ PHP NEWS - Standard: . Fixed bug #77552 (Unintialized php_stream_statbuf in stat functions). (John Stevenson) + . Fixed bug #77608 (http_build_query doesn't encode "+" in a float number). + (Nikita) 07 Feb 2019, PHP 7.3.2 diff --git a/ext/standard/http.c b/ext/standard/http.c index 27ceafe0ae..a2c457704f 100644 --- a/ext/standard/http.c +++ b/ext/standard/http.c @@ -190,15 +190,6 @@ PHPAPI int php_url_encode_hash_ex(HashTable *ht, smart_str *formstr, case IS_TRUE: smart_str_appendl(formstr, "1", sizeof("1")-1); break; - case IS_DOUBLE: - { - char *ekey; - size_t ekey_len; - ekey_len = spprintf(&ekey, 0, "%.*G", (int) EG(precision), Z_DVAL_P(zdata)); - smart_str_appendl(formstr, ekey, ekey_len); - efree(ekey); - } - break; default: { zend_string *ekey; diff --git a/ext/standard/tests/strings/bug77608.phpt b/ext/standard/tests/strings/bug77608.phpt new file mode 100644 index 0000000000..77bfb74a87 --- /dev/null +++ b/ext/standard/tests/strings/bug77608.phpt @@ -0,0 +1,11 @@ +--TEST-- +Bug #77608: http_build_query doesn't encode "+" in a float number +--FILE-- +<?php + +$a = ["x" => 1E+14, "y" => "1E+14"]; +echo http_build_query($a); + +?> +--EXPECT-- +x=1.0E%2B14&y=1E%2B14 |