With MR 2706 [1] the MQTT dissector calls now subdissectors with call_dissector_with_data() [2]. Previously this was call_dissector().
With this change the JSON dissector crashes WS with a memory access segfault (while using MQTT decode topic as option). This is because for JSON we expect http_message_info_t for data pointer [3]. MQTT hands over a pointer to a char array (topic_str) for data. How do we handle data type for the data parameter pointer? Would it make sense to compare at least the size of data with the size of http_message_info_t? I don’t know any way to check the data type of a pointer address location. Cheers Uli [1]: https://gitlab.com/wireshark/wireshark/-/merge_requests/2706/ [2]: https://gitlab.com/wireshark/wireshark/-/merge_requests/2706//diffs#07171e000b3caaabee32ab5dc04a5d28efbaaae3_755_755 [3]: https://gitlab.com/wireshark/wireshark/-/blob/master/epan/dissectors/packet-json.c#L221 ___________________________________________________________________________ Sent via: Wireshark-dev mailing list <wireshark-dev@wireshark.org> Archives: https://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe