Add JSON type validation for parsed JSON #805
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi team,
I found another null pointer dereference issue related to extended JSON filtering.
An unexpected JSON structure can lead to a crash in the library macro
json_object_object_foreach(j_parsed_json, key, val)insidedlt-control-common.c. In this case, the parsed JSON object may be NULL,but the code iterates over it without validation. I added a defensive
check to prevent the crash.
PoC
cmake .. \ -DCMAKE_BUILD_TYPE=Debug \ -DWITH_DLT_DEBUGGERS=ON \ -DWITH_EXTENDED_FILTERING=ON python3 -c 'print("\"" + "A" * 4807 + "\"", end="")' > crash.json ./src/console/dlt-receive -j crash.json localhostThe repetition count
4807works on my machine but may vary acrossdifferent environments.
Crash