func_json: Fix crashes for some types

This commit fixes crashes in JSON_DECODE() for types null, true, false
and real numbers.

In addition it ensures that a path is not deeper than 32 levels.

Also allow root object to be an array.

Add unit tests for above cases.

(cherry picked from commit 1cbbf36929)
This commit is contained in:
Bastian Triller
2023-09-21 08:24:37 +02:00
committed by Asterisk Development Team
parent 779fb2052a
commit 903c594cef
3 changed files with 77 additions and 22 deletions

View File

@@ -250,6 +250,16 @@ struct ast_json *ast_json_null(void)
return (struct ast_json *)json_null();
}
int ast_json_is_array(const struct ast_json *json)
{
return json_is_array((const json_t *)json);
}
int ast_json_is_object(const struct ast_json *json)
{
return json_is_object((const json_t *)json);
}
int ast_json_is_true(const struct ast_json *json)
{
return json_is_true((const json_t *)json);