On Mon, Oct 22, 2012 at 3:11 AM, Jakub Zawadzki <[email protected]> wrote: > On Tue, Oct 16, 2012 at 03:18:32PM +0000, Anders Broman wrote: >> I think it sounds like the right thing to do and as no one have any >> objections I think you might as well go ahead and check it in :-) > > Bug #7892. > > Some solutions to fix it: > > 1/ revert r45673 > > 2/ call epan_dissect_fill_in_columns() before ep_free_all() > > epan_dissect_fill_in_columns() in 8 cases of 9 is called after > epan_dissect_run(). > > Only complicated case is tshark, which pass edt pointer to print_packet(), > which later not always call > epan_dissect_fill_in_columns(). > > Still it won't work, if GUI use ep_ allocated addresses. > > 3/ don't use ep_ memory for pinfo-> addresses? > > Greping for e.g. \<net_src\> in GTK+ code shows that it's used also to > build conversation filters (ip, ethernet, ...) > for these addr->data points to tvb (tvbs are freed in > epan_dissect_cleanup()). > > I haven't (yet) found use of address with AT_STRINGZ data, but it can > change anytime.
Perhaps ep_free_all() should be called in epan_dissect_cleanup() and epan_dissect_reset() instead of at the end of epan_dissect_run()? I think that would delay freeing the memory enough, while still leaving it conceptually after each packet instead of before the next... Tangentially, epan_dissect_cleanup() and epan_dissect_reset() share some code that should probably be abstracted into its own function. Evan ___________________________________________________________________________ Sent via: Wireshark-dev mailing list <[email protected]> Archives: http://www.wireshark.org/lists/wireshark-dev Unsubscribe: https://wireshark.org/mailman/options/wireshark-dev mailto:[email protected]?subject=unsubscribe
