Wireshark-bugs: [Wireshark-bugs] [Bug 5284] new_packet_list: redissection + redraw crashes when

Date: Mon, 1 Nov 2010 12:57:24 -0700 (PDT)
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5284

--- Comment #6 from Guy Harris <guy@xxxxxxxxxxxx> 2010-11-01 12:57:20 PDT ---
File scope is too much; we probably don't want keep the names for all data
sources - and the tvbuffs for them as well - for as long as the file is open.

I'm not sure that we can reliably ensure that only one dissection is done at a
time - we probably can't control when GTK+ decides to redraw the packet list (I
don't think it has a need to do so if we add multiple tabs to the hex dump
pane, as that pane should be fixed-length, but it looks as if, for better or
worse, it's doing so, at least in the version of GTK+ Jeff is using, and
presumably in GTK+ 2.20.1 as well).  Relying on GTK+ "doing the convenient
thing" is risky.

add_byte_views() is called by add_main_byte_views(), which is called by
main_cf_cb_packet_selected(), which passes it cf->edt.  cf_select_packet() sets
cf->edt - and it leaves it in place until the next call to cf_select_packet()
or cf_unselect_packet(), so it *should* be in existence when add_byte_views()
is called.

As for my earlier statement about adding "epan_dissect_t scope", we can
probably add support for allocating new memory pools, and attaching one to the
epan_dissect_t, without eliminating the ephemeral-scope pool immediately, so
that might be the right way to fix this.

-- 
Configure bugmail: https://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.