summaryrefslogtreecommitdiff
path: root/ext/json
diff options
context:
space:
mode:
authorJakub Zelenka <bukka@php.net>2015-02-02 19:53:32 +0000
committerJakub Zelenka <bukka@php.net>2015-02-02 19:53:32 +0000
commit3e4c1717ee4f4beb9c362942a113b90fff0a7fb0 (patch)
treef5da1649f6cfb5ae06b09b9cab4fd19a4446a767 /ext/json
parentb65205028a2debc50c3e2ca1572da4c74ac87834 (diff)
parent92576c7c49a3c104bc4aea4cfa378a029bb26c86 (diff)
downloadphp-git-3e4c1717ee4f4beb9c362942a113b90fff0a7fb0.tar.gz
Merge branch 'master' into jsond
Diffstat (limited to 'ext/json')
-rw-r--r--ext/json/json.c1
-rw-r--r--ext/json/tests/bug54484.phpt9
-rw-r--r--ext/json/tests/bug68938.phpt11
3 files changed, 19 insertions, 2 deletions
diff --git a/ext/json/json.c b/ext/json/json.c
index b1de42a577..0f8fdfb132 100644
--- a/ext/json/json.c
+++ b/ext/json/json.c
@@ -246,6 +246,7 @@ static PHP_FUNCTION(json_decode)
JSON_G(error_code) = 0;
if (!str_len) {
+ JSON_G(error_code) = PHP_JSON_ERROR_SYNTAX;
RETURN_NULL();
}
diff --git a/ext/json/tests/bug54484.phpt b/ext/json/tests/bug54484.phpt
index d698ab5416..e56d8bd86b 100644
--- a/ext/json/tests/bug54484.phpt
+++ b/ext/json/tests/bug54484.phpt
@@ -15,11 +15,16 @@ json_decode("invalid json");
var_dump(json_last_error());
+json_decode("\001 invalid json");
+var_dump(json_last_error());
+
+
json_decode("");
var_dump(json_last_error());
?>
--EXPECT--
int(0)
-int(0)
int(4)
-int(0)
+int(4)
+int(3)
+int(4)
diff --git a/ext/json/tests/bug68938.phpt b/ext/json/tests/bug68938.phpt
new file mode 100644
index 0000000000..f6291ffe62
--- /dev/null
+++ b/ext/json/tests/bug68938.phpt
@@ -0,0 +1,11 @@
+--TEST--
+Bug #68938 (json_decode() decodes empty string without indicating error)
+--SKIPIF--
+<?php if (!extension_loaded("json")) print "skip"; ?>
+--FILE--
+<?php
+json_decode("");
+var_dump(json_last_error());
+?>
+--EXPECT--
+int(4)