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>
This commit is contained in:
Adam Morrison 2018-06-04 13:22:49 -07:00 committed by Anders Broman
parent bb25d64a2a
commit 11b3663004
3 changed files with 12 additions and 14 deletions

10
file.c
View File

@ -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);

View File

@ -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);

View File

@ -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);