Guy Harris wrote:
> LEGO wrote:
>
>> I think './tethereal -G ...' fails as the new radius defines almost
>> three thousand new fields we have to increase the timeout from 600
>> seconds to something higher.
>
>
> It's failing with SIGSEGV ("signal 11"), so it's probably something
> other than that.
>
>> As for the segmentation fault in the test-menagerie I did several
>> rounds of fuzz-testing on the new code and did not get any.
>
>
> If it's a problem with the code to read the RADIUS dictionary that fails
> only on some platforms (it's not failing for me on OS X), that might
> explain both failures.
>
> Gerald, can you get a stack trace of the crashes? (Can the scripts get
> run gdb on the Tethereal binary and resulting core file - core.$PID -
> and get a backtrace?)
The problem was with the array that the RADIUS dissector passed to
proto_register_subtree_array(). Here's the trace:
#0 proto_register_subtree_array (indices=0x2000000000478018,
num_indices=1421)
at proto.c:3057
3057 **ptr = num_tree_types;
(gdb) bt
#0 proto_register_subtree_array (indices=0x2000000000478018,
num_indices=1421)
at proto.c:3057
#1 0x2000000040dfbfd0 in proto_register_radius () at packet-radius.c:831
#2 0x2000000040ffdbc0 in register_all_protocols () at register.c:419
#3 0x20000000407ab330 in proto_init (
plugin_dir=0x2000000000064680 "/tmp/inst/lib/ethereal/plugins/0.10.11",
register_all_protocols=0x20000000400d60e0,
register_all_protocol_handoffs=0x20000000400d6120) at proto.c:307
#4 0x2000000040795010 in epan_init (
plugin_dir=0x2000000000064680 "/tmp/inst/lib/ethereal/plugins/0.10.11",
register_all_protocols=0x20000000400d60e0,
register_all_handoffs=0x20000000400d6120,
report_failure=@0x2000000000074a20: 0x200000000003a480
<failure_message>,
report_open_failure=@0x20000000000746c0: 0x20000000000391b0
<open_failure_message>,
report_read_failure=@0x20000000000746d0: 0x200000000003a520
<read_failure_message>) at epan.c:64
#5 0x20000000000307b0 in main (argc=3, argv=0x9fffffffffffeb20)
at tethereal.c:668
I've checked in a fix.