aboutsummaryrefslogtreecommitdiffstats
path: root/cfile.h
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2018-06-29 22:38:10 -0700
committerAnders Broman <a.broman58@gmail.com>2018-07-03 07:57:48 +0000
commit8a1e517befc032b5607ca34ea60399db5d2359c4 (patch)
tree6422f8f59b99e9f1b321d8095cd11667a9e93159 /cfile.h
parent9ba6d3fbc0a25d6189849000a4abb45f6637a194 (diff)
file: fix packet list update after dfilter change during live capture
During live captures, "cf->state==FILE_READ_IN_PROGRESS" holds and as such setting "cf->redissection_queued" from "cf_filter_packets" will prevent the packet list from being updated (no new packets are added and display filter changes are not applied). Fix this by not checking "cf->state" and instead perform an explicit check to detect the "update_progress_dlg" issue (see original commit). As "cf->read_lock" is implied by "cf->redissecting", remove that check as well (see "rescan_packets"). Print a warning instead of aborting in "cf_read" since I am not sure if that condition is currently prevented by its callers. Bug: 14918 Change-Id: Ieb7d1ae3cbeef18f17c850ae3778822ee625dc68 Fixes: v2.9.0rc0-1110-g8e07b778f6 ("file: do not perform recursive redissections to avoid crashes") Reviewed-on: https://code.wireshark.org/review/28538 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
Diffstat (limited to 'cfile.h')
-rw-r--r--cfile.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/cfile.h b/cfile.h
index 01f430b028..cbe54b1562 100644
--- a/cfile.h
+++ b/cfile.h
@@ -91,6 +91,7 @@ typedef struct _capture_file {
dfilter_t *dfcode; /* Compiled display filter program */
gchar *dfilter; /* Display filter string */
gboolean redissecting; /* TRUE if currently redissecting (cf_redissect_packets) */
+ gboolean read_lock; /* TRUE if currently processing a file (cf_read) */
rescan_type redissection_queued; /* Queued redissection type. */
/* search */
gchar *sfilter; /* Filter, hex value, or string being searched */