mirror of
https://github.com/MariaDB/server.git
synced 2025-06-04 18:03:14 +03:00
MDEV-19628 JSON with starting double quotes key is not valid.
First character of the key name is just skipped, so the escapement wasn't handled properly.
This commit is contained in:
parent
2911a9a693
commit
6ac2a35553
@ -951,5 +951,17 @@ SELECT json_valid('{"test": "\\ud83d\\ude0b"}');
|
||||
json_valid('{"test": "\\ud83d\\ude0b"}')
|
||||
1
|
||||
#
|
||||
# MDEV-19670 json escaped unicode parse error
|
||||
#
|
||||
SELECT JSON_VALID('{"admin\\"": null}'), '{"admin\\"": null}'
|
||||
UNION
|
||||
SELECT JSON_VALID('{"\\"admin": null}'), '{"\\"admin": null}'
|
||||
UNION
|
||||
SELECT JSON_VALID('{"\\"": null}'), '{"\\"": null}';
|
||||
JSON_VALID('{"admin\\"": null}') {"admin\"": null}
|
||||
1 {"admin\"": null}
|
||||
1 {"\"admin": null}
|
||||
1 {"\"": null}
|
||||
#
|
||||
# End of 10.3 tests
|
||||
#
|
||||
|
@ -568,6 +568,16 @@ SELECT
|
||||
SELECT json_valid('{"value":"\\ud83d\\ude0a"}');
|
||||
SELECT json_valid('{"test": "\\ud83d\\ude0b"}');
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-19670 json escaped unicode parse error
|
||||
--echo #
|
||||
|
||||
SELECT JSON_VALID('{"admin\\"": null}'), '{"admin\\"": null}'
|
||||
UNION
|
||||
SELECT JSON_VALID('{"\\"admin": null}'), '{"\\"admin": null}'
|
||||
UNION
|
||||
SELECT JSON_VALID('{"\\"": null}'), '{"\\"": null}';
|
||||
|
||||
--echo #
|
||||
--echo # End of 10.3 tests
|
||||
--echo #
|
||||
|
File diff suppressed because one or more lines are too long
@ -825,6 +825,8 @@ static int skip_colon(json_engine_t *j)
|
||||
static int skip_key(json_engine_t *j)
|
||||
{
|
||||
int t_next, c_len;
|
||||
|
||||
j->s.c_str-= j->sav_c_len;
|
||||
while (json_read_keyname_chr(j) == 0) {}
|
||||
|
||||
if (j->s.error)
|
||||
|
Loading…
x
Reference in New Issue
Block a user