Commit 08f1c4a2 authored by Sergei Petrunia's avatar Sergei Petrunia

MDEV-27203: Valgrind / MSAN errors in Histogram_json_hb::parse_bucket

In read_bucket_endpoint(), handle all possible parser states.
parent d8d57d2c
......@@ -4688,7 +4688,7 @@ explain select * from t1_json limit 1;
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE t1_json ALL NULL NULL NULL NULL 10
Warnings:
Warning 4186 Failed to parse histogram for table test.t1_json: "size" element not present at offset 28.
Warning 4186 Failed to parse histogram for table test.t1_json: String or number expected at offset 27.
UPDATE mysql.column_stats
SET histogram='{"histogram_hb":[{"start":"aaa", "size":"not-an-integer"}]}'
WHERE table_name='t1_json';
......
......@@ -480,6 +480,13 @@ bool read_bucket_endpoint(json_engine_t *je, Field *field, String *out,
if (json_read_value(je))
return true;
if (je->value_type != JSON_VALUE_STRING &&
je->value_type != JSON_VALUE_NUMBER)
{
*err= "String or number expected";
return true;
}
const char* je_value= (const char*)je->value;
if (je->value_type == JSON_VALUE_STRING && je->value_escaped)
{
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment