diff options
author | Peter Wu <peter@lekensteyn.nl> | 2018-06-29 22:38:10 -0700 |
---|---|---|
committer | Anders Broman <a.broman58@gmail.com> | 2018-07-03 07:57:48 +0000 |
commit | 8a1e517befc032b5607ca34ea60399db5d2359c4 (patch) | |
tree | 6422f8f59b99e9f1b321d8095cd11667a9e93159 /cfile.h | |
parent | 9ba6d3fbc0a25d6189849000a4abb45f6637a194 (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.h | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -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 */ |