forked from osmocom/wireshark
Fixed a bug related to epan initialization
In various places, <program>_epan_new was called before setting the provider, so the wth field was null. This fix is necessary for the next commit, adding Secrets Description Block, as it uses this field. Change-Id: Ice8ee01c56b3e04fc71d7b2c659d9635cb366951 Reviewed-on: https://code.wireshark.org/review/28868 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>thomas/dect
parent
bb25d64a2a
commit
11b3663004
10
file.c
10
file.c
|
@ -267,11 +267,6 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp
|
|||
the packets, so we know how much we'll ultimately need. */
|
||||
ws_buffer_init(&cf->buf, 1500);
|
||||
|
||||
/* Create new epan session for dissection.
|
||||
* (The old one was freed in cf_close().)
|
||||
*/
|
||||
cf->epan = ws_epan_new(cf);
|
||||
|
||||
/* We're about to start reading the file. */
|
||||
cf->state = FILE_READ_IN_PROGRESS;
|
||||
|
||||
|
@ -313,6 +308,11 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp
|
|||
cf->provider.prev_cap = NULL;
|
||||
cf->cum_bytes = 0;
|
||||
|
||||
/* Create new epan session for dissection.
|
||||
* (The old one was freed in cf_close().)
|
||||
*/
|
||||
cf->epan = ws_epan_new(cf);
|
||||
|
||||
packet_list_queue_draw();
|
||||
cf_callback_invoke(cf_cb_file_opened, cf);
|
||||
|
||||
|
|
8
sharkd.c
8
sharkd.c
|
@ -413,10 +413,6 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp
|
|||
|
||||
/* The open succeeded. Fill in the information for this file. */
|
||||
|
||||
/* Create new epan session for dissection. */
|
||||
epan_free(cf->epan);
|
||||
cf->epan = sharkd_epan_new(cf);
|
||||
|
||||
cf->provider.wth = wth;
|
||||
cf->f_datalen = 0; /* not used, but set it anyway */
|
||||
|
||||
|
@ -442,6 +438,10 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp
|
|||
cf->provider.prev_dis = NULL;
|
||||
cf->provider.prev_cap = NULL;
|
||||
|
||||
/* Create new epan session for dissection. */
|
||||
epan_free(cf->epan);
|
||||
cf->epan = sharkd_epan_new(cf);
|
||||
|
||||
cf->state = FILE_READ_IN_PROGRESS;
|
||||
|
||||
wtap_set_cb_new_ipv4(cf->provider.wth, add_ipv4_name);
|
||||
|
|
8
tshark.c
8
tshark.c
|
@ -4064,10 +4064,6 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp
|
|||
|
||||
/* The open succeeded. Fill in the information for this file. */
|
||||
|
||||
/* Create new epan session for dissection. */
|
||||
epan_free(cf->epan);
|
||||
cf->epan = tshark_epan_new(cf);
|
||||
|
||||
cf->provider.wth = wth;
|
||||
cf->f_datalen = 0; /* not used, but set it anyway */
|
||||
|
||||
|
@ -4093,7 +4089,9 @@ cf_open(capture_file *cf, const char *fname, unsigned int type, gboolean is_temp
|
|||
cf->provider.prev_dis = NULL;
|
||||
cf->provider.prev_cap = NULL;
|
||||
|
||||
cf->state = FILE_READ_IN_PROGRESS;
|
||||
/* Create new epan session for dissection. */
|
||||
epan_free(cf->epan);
|
||||
cf->epan = tshark_epan_new(cf);
|
||||
|
||||
wtap_set_cb_new_ipv4(cf->provider.wth, add_ipv4_name);
|
||||
wtap_set_cb_new_ipv6(cf->provider.wth, (wtap_new_ipv6_callback_t) add_ipv6_name);
|
||||
|
|
Loading…
Reference in New Issue