Artur Zaprzala wrote:
Ethereal 0.10.8 is crashing on `NEW' packets from IAX2 protocol. 
Attached patch corrects the problem, but I don't know the sources enough 
to be sure if this patch targets actual bug or only its symptoms.
Artur Zaprzala
------------------------------------------------------------------------
--- packet-iax2.c-orig	2004-12-14 20:53:55.000000000 +0100
+++ packet-iax2.c	2005-01-10 00:30:18.619617504 +0100
@@ -1201,7 +1201,8 @@
       /* if this is a data call, set up a subdissector for the circuit */
       dissector_handle_t s;
       s = dissector_get_port_handle(iax2_dataformat_dissector_table, iax_call -> dataformat );
-      circuit_set_dissector( circuit, s );
+      if (s!=NULL)
+	circuit_set_dissector( circuit, s );
     }
"circuit_set_dissector()" doesn't itself dereference the pointer passed 
to it as the second argument, it just sets the circuit's 
"dissector_handle" to that argument - and a newly-created circuit has a 
null value for "dissector_handle", so if s is null 
"circuit_set_dissector" shouldn't do anything...
...unless "circuit" *itself* is null, in which case it'll crash on most 
platforms - however, that statement is inside an "if" that tests whether 
"circuit" is null, so that shouldn't be a problem - *or* if "circuit" 
has a bogus value, in which case it might crash.
It's not guaranteed that "circuit" is set, so that's probably the 
problem.  I'll check in a change to set it to null in the cases where 
it's not set (and do the same for "reversed").