diff options
author | Martin Kaiser <wireshark@kaiser.cx> | 2018-03-31 19:03:10 +0200 |
---|---|---|
committer | Roland Knall <rknall@gmail.com> | 2018-04-09 04:08:10 +0000 |
commit | f0fed342165145461ed88358d2fc8985d15f3745 (patch) | |
tree | fce0245143c3d8832b4bb198772ddd1a7759cf70 /INSTALL | |
parent | 55f6f6593cd168acf81f0a0de31e22ac59470bc4 (diff) |
main window: don't keep a dangling freeze_focus_ pointer
Without this fix, Wireshark crashes when the user presses Ctrl-D or
selects Edit / Ignore Packet and the current focus is somewhere on the
bytes view.
To ignore a packet, we protect the actual ignore operation by calling
main window's freeze and thaw methods. We save a pointer freeze_focus_,
pointing to the widget that has the focus, and restore the focus during
thaw.
This causes a crash if the focused widget is part of ByteViewTab.
Ignoring the packet causes a redissection, the ByteViewTab and its
children are cleared. freeze_focus_ remains non-NULL but doesn't point
to a valid QWdiget any more. Calling freeze_focus_->setFocus() crashes.
Fix this by using a QPointer<QWdiget> for freeze_focus_. The pointer is
then reset to NULL when the QWdiget that it points to goes out of scope.
Change-Id: Icc1f71a9de971284c628b7815a7fc1a5cc0d5fe2
Reviewed-on: https://code.wireshark.org/review/26693
Reviewed-by: Martin Kaiser <wireshark@kaiser.cx>
Petri-Dish: Martin Kaiser <wireshark@kaiser.cx>
Tested-by: Petri Dish Buildbot
Reviewed-by: Peter Wu <peter@lekensteyn.nl>
Reviewed-by: Roland Knall <rknall@gmail.com>
Diffstat (limited to 'INSTALL')
0 files changed, 0 insertions, 0 deletions