diff options
author | Rucha Deodhar <rucha.deodhar@mariadb.com> | 2023-03-02 17:50:19 +0530 |
---|---|---|
committer | Rucha Deodhar <rucha.deodhar@mariadb.com> | 2023-04-26 11:00:09 +0530 |
commit | d555f38af819db8b051c4f754358041f146e83f4 (patch) | |
tree | 19bebe98d78148ba30d6a914ce5577a4d096e0af /mysql-test/main | |
parent | 1c25b5c02666420eba5708bb93a6a41e7d7a3a63 (diff) | |
download | mariadb-git-d555f38af819db8b051c4f754358041f146e83f4.tar.gz |
MDEV-30690: Server crashed on function JSON_SCHEMA_VALID with incorrect
input json schema
Analysis: In case of syntax error while scanning json schema, true is
returned inspite of it being wanring and not error.
Fix: return true instead of false.
Diffstat (limited to 'mysql-test/main')
-rw-r--r-- | mysql-test/main/func_json.result | 37 | ||||
-rw-r--r-- | mysql-test/main/func_json.test | 25 |
2 files changed, 60 insertions, 2 deletions
diff --git a/mysql-test/main/func_json.result b/mysql-test/main/func_json.result index da8cb3008bf..8b4c98ae9fd 100644 --- a/mysql-test/main/func_json.result +++ b/mysql-test/main/func_json.result @@ -3344,9 +3344,9 @@ SET @invalid_schema= '{"type":"object" }'; SELECT JSON_SCHEMA_VALID(@invalid_schema, '{"number1":3, "obj2":{"key1":3}}'); JSON_SCHEMA_VALID(@invalid_schema, '{"number1":3, "obj2":{"key1":3}}') -1 +NULL Warnings: -Warning 4038 Syntax error in JSON text in argument 2 to function 'json_schema_valid' at position 45 +Warning 4038 Syntax error in JSON text in argument 1 to function 'json_schema_valid' at position 45 SET @invalid_json= '{"type":"array", "maxItems": 4, "minItems": 2, @@ -4557,4 +4557,37 @@ JSON_SCHEMA_VALID(@schema_pattern_properties, '{"i_": 50}') SELECT JSON_SCHEMA_VALID(@schema_pattern_properties, '{"i_": 150}'); JSON_SCHEMA_VALID(@schema_pattern_properties, '{"i_": 150}') 1 +# +# MDEV-30690: Server crashed on function JSON_SCHEMA_VALID with incorrect input json schema +# +SET @schema = '{""}'; +SELECT JSON_SCHEMA_VALID(@schema, '1'); +JSON_SCHEMA_VALID(@schema, '1') +NULL +Warnings: +Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_schema_valid' +SET @schema = '{ + "type": "string", + "format" + }'; +SELECT JSON_SCHEMA_VALID(@schema, '1'); +JSON_SCHEMA_VALID(@schema, '1') +NULL +Warnings: +Warning 4037 Unexpected end of JSON text in argument 1 to function 'json_schema_valid' +SET @invalid_schema= '{"type":"object" + "properties":{ + "number1": {"type":"number"}, + "obj2": {"type":"object", + "properties": { + "key1": {"type":"number"} + } + } + } + }'; +SELECT JSON_SCHEMA_VALID(@invalid_schema, '{"number1":3, "obj2":{"key1":3}}'); +JSON_SCHEMA_VALID(@invalid_schema, '{"number1":3, "obj2":{"key1":3}}') +NULL +Warnings: +Warning 4038 Syntax error in JSON text in argument 1 to function 'json_schema_valid' at position 45 # End of 11.1 test diff --git a/mysql-test/main/func_json.test b/mysql-test/main/func_json.test index 4a400f1de90..c417a8ea4f8 100644 --- a/mysql-test/main/func_json.test +++ b/mysql-test/main/func_json.test @@ -3449,4 +3449,29 @@ SELECT JSON_SCHEMA_VALID(@schema_pattern_properties, '{"I_": 150}'); SELECT JSON_SCHEMA_VALID(@schema_pattern_properties, '{"i_": 50}'); SELECT JSON_SCHEMA_VALID(@schema_pattern_properties, '{"i_": 150}'); +--echo # +--echo # MDEV-30690: Server crashed on function JSON_SCHEMA_VALID with incorrect input json schema +--echo # + +SET @schema = '{""}'; +SELECT JSON_SCHEMA_VALID(@schema, '1'); + +SET @schema = '{ + "type": "string", + "format" + }'; +SELECT JSON_SCHEMA_VALID(@schema, '1'); + +SET @invalid_schema= '{"type":"object" + "properties":{ + "number1": {"type":"number"}, + "obj2": {"type":"object", + "properties": { + "key1": {"type":"number"} + } + } + } + }'; +SELECT JSON_SCHEMA_VALID(@invalid_schema, '{"number1":3, "obj2":{"key1":3}}'); + --echo # End of 11.1 test |