aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2017-11-11 01:15:32 +0000
committerStig Bjørlykke <stig@bjorlykke.org>2017-11-11 08:58:25 +0000
commit7cbbbe0bde475786d661fe887ee2340a269f1063 (patch)
treef2ae5a1690edc1b6cd50ecc817278e3a0081a544
parent0c382106f8504315039510e4adc67e0e5c2003cd (diff)
Qt: avoid undefined behavior in ProtoTree::eventFilter
UBSan complains about "ev" being a "QEvent" rather than a QMouseEvent. Change-Id: I9e59ffbe16df2ef20b7856e6dd2d9ef246632de6 Fixes: v2.5.0rc0-1608-g4d6454e180 ("Qt: Drag n Drop Filter expression from Packet Tree") Reviewed-on: https://code.wireshark.org/review/24338 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
-rw-r--r--ui/qt/proto_tree.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/ui/qt/proto_tree.cpp b/ui/qt/proto_tree.cpp
index 6cc438e211..b1620b4c68 100644
--- a/ui/qt/proto_tree.cpp
+++ b/ui/qt/proto_tree.cpp
@@ -708,15 +708,17 @@ bool ProtoTree::eventFilter(QObject * obj, QEvent * event)
if ( cap_file_ && event->type() != QEvent::MouseButtonPress && event->type() != QEvent::MouseMove )
return QTreeWidget::eventFilter(obj, event);
- QMouseEvent * ev = (QMouseEvent *)event;
-
if ( event->type() == QEvent::MouseButtonPress )
{
+ QMouseEvent * ev = (QMouseEvent *)event;
+
if ( ev->buttons() & Qt::LeftButton )
dragStartPosition = ev->pos();
}
else if ( event->type() == QEvent::MouseMove )
{
+ QMouseEvent * ev = (QMouseEvent *)event;
+
if ( ( ev->buttons() & Qt::LeftButton ) && (ev->pos() - dragStartPosition).manhattanLength()
> QApplication::startDragDistance())
{