aboutsummaryrefslogtreecommitdiffstats
path: root/file.c
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2014-04-29 15:47:09 +0200
committerAlexis La Goutte <alexis.lagoutte@gmail.com>2014-04-29 17:06:02 +0000
commitdfb92dfd674474b89fa6a2d833b01443b1183032 (patch)
tree09a0b4b2727be89330f55d05d36cfbc867ad175e /file.c
parentb60ccf6dae9c3f29fce8644cebb685246a349921 (diff)
Fix crash when switching profiles
rescan_packets() starts a new dissection session by free'ing the previous state and creating a new one. A reference to the old session was not updated though. This is the only place where epan is overwritten. After init, col_init will at some point initialize cf->cinfo.epan with a cf->epan. Bug: 9463 Change-Id: I8cf4e0823328f44a0dccfeeec1594f9929829d2d Reviewed-on: https://code.wireshark.org/review/1430 Reviewed-by: Evan Huus <eapache@gmail.com> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
Diffstat (limited to 'file.c')
-rw-r--r--file.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/file.c b/file.c
index c32cb99e11..6f743961f3 100644
--- a/file.c
+++ b/file.c
@@ -1890,6 +1890,7 @@ rescan_packets(capture_file *cf, const char *action, const char *action_item, gb
/* 'reset' dissection session */
epan_free(cf->epan);
cf->epan = ws_epan_new(cf);
+ cf->cinfo.epan = cf->epan;
/* We need to redissect the packets so we have to discard our old
* packet list store. */