summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-02-12 10:50:09 +0100
committerNikita Popov <nikita.ppv@gmail.com>2019-02-12 10:50:22 +0100
commit2ea5a9cc6470564a377b71f7fd07972f1c026887 (patch)
tree50a37bccf0f6ccecacc39d42eab9c95cb1cca1a5
parent97dd1591af3eee8ff43f77afc03013a29cdeb935 (diff)
parent8e34de475699a4aa0fbc7b8430574b56dc839362 (diff)
downloadphp-git-2ea5a9cc6470564a377b71f7fd07972f1c026887.tar.gz
Merge branch 'PHP-7.2' into PHP-7.3
-rw-r--r--NEWS2
-rw-r--r--ext/standard/http.c9
-rw-r--r--ext/standard/tests/strings/bug77608.phpt11
3 files changed, 13 insertions, 9 deletions
diff --git a/NEWS b/NEWS
index 9f8cee1462..c9cb245604 100644
--- a/NEWS
+++ b/NEWS
@@ -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