mirror of
https://github.com/php/php-src.git
synced 2025-08-15 21:48:51 +02:00
Merge branch 'PHP-5.6'
This commit is contained in:
commit
a833f7d460
2 changed files with 72 additions and 3 deletions
|
@ -712,14 +712,14 @@ PHP_JSON_API void php_json_decode_ex(zval *return_value, char *str, int str_len,
|
||||||
|
|
||||||
RETVAL_NULL();
|
RETVAL_NULL();
|
||||||
if (trim_len == 4) {
|
if (trim_len == 4) {
|
||||||
if (!strncasecmp(trim, "null", trim_len)) {
|
if (!strncmp(trim, "null", trim_len)) {
|
||||||
/* We need to explicitly clear the error because its an actual NULL and not an error */
|
/* We need to explicitly clear the error because its an actual NULL and not an error */
|
||||||
jp->error_code = PHP_JSON_ERROR_NONE;
|
jp->error_code = PHP_JSON_ERROR_NONE;
|
||||||
RETVAL_NULL();
|
RETVAL_NULL();
|
||||||
} else if (!strncasecmp(trim, "true", trim_len)) {
|
} else if (!strncmp(trim, "true", trim_len)) {
|
||||||
RETVAL_BOOL(1);
|
RETVAL_BOOL(1);
|
||||||
}
|
}
|
||||||
} else if (trim_len == 5 && !strncasecmp(trim, "false", trim_len)) {
|
} else if (trim_len == 5 && !strncmp(trim, "false", trim_len)) {
|
||||||
RETVAL_BOOL(0);
|
RETVAL_BOOL(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
69
ext/json/tests/bug64874_part2.phpt
Normal file
69
ext/json/tests/bug64874_part2.phpt
Normal file
|
@ -0,0 +1,69 @@
|
||||||
|
--TEST--
|
||||||
|
Case-sensitivity part of bug #64874 ("json_decode handles whitespace and case-sensitivity incorrectly")
|
||||||
|
--SKIPIF--
|
||||||
|
<?php if (!extension_loaded("json")) print "skip"; ?>
|
||||||
|
--FILE--
|
||||||
|
<?php
|
||||||
|
function decode($json) {
|
||||||
|
var_dump(json_decode($json));
|
||||||
|
echo ((json_last_error() !== 0) ? 'ERROR' : 'SUCCESS') . PHP_EOL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Only lowercase should work
|
||||||
|
decode('true');
|
||||||
|
decode('True');
|
||||||
|
decode('[true]');
|
||||||
|
decode('[True]');
|
||||||
|
echo PHP_EOL;
|
||||||
|
|
||||||
|
decode('false');
|
||||||
|
decode('False');
|
||||||
|
decode('[false]');
|
||||||
|
decode('[False]');
|
||||||
|
echo PHP_EOL;
|
||||||
|
|
||||||
|
decode('null');
|
||||||
|
decode('Null');
|
||||||
|
decode('[null]');
|
||||||
|
decode('[Null]');
|
||||||
|
echo PHP_EOL;
|
||||||
|
|
||||||
|
echo "Done\n";
|
||||||
|
--EXPECT--
|
||||||
|
bool(true)
|
||||||
|
SUCCESS
|
||||||
|
NULL
|
||||||
|
ERROR
|
||||||
|
array(1) {
|
||||||
|
[0]=>
|
||||||
|
bool(true)
|
||||||
|
}
|
||||||
|
SUCCESS
|
||||||
|
NULL
|
||||||
|
ERROR
|
||||||
|
|
||||||
|
bool(false)
|
||||||
|
SUCCESS
|
||||||
|
NULL
|
||||||
|
ERROR
|
||||||
|
array(1) {
|
||||||
|
[0]=>
|
||||||
|
bool(false)
|
||||||
|
}
|
||||||
|
SUCCESS
|
||||||
|
NULL
|
||||||
|
ERROR
|
||||||
|
|
||||||
|
NULL
|
||||||
|
SUCCESS
|
||||||
|
NULL
|
||||||
|
ERROR
|
||||||
|
array(1) {
|
||||||
|
[0]=>
|
||||||
|
NULL
|
||||||
|
}
|
||||||
|
SUCCESS
|
||||||
|
NULL
|
||||||
|
ERROR
|
||||||
|
|
||||||
|
Done
|
Loading…
Add table
Add a link
Reference in a new issue