Wireshark-commits: [Wireshark-commits] master b6f73f2: Qt: fix crash on clearing dfilter after capt
URL: https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=b6f73f2567854b1ea417957d7ea5de32b1989aa3
Submitter: Anders Broman (a.broman58@xxxxxxxxx)
Changed: branch: master
Repository: wireshark
Commits:
b6f73f2 by Peter Wu (peter@xxxxxxxxxxxxx):
Qt: fix crash on clearing dfilter after capture restart
Since v2.1.2rc0-1-gaf5daa6 ("Qt: Replace a QMap with a QVector."), the
following error could be observed:
ASSERT failure in QVector<T>::operator[]: "index out of range", file /usr/include/qt/QtCore/qvector.h, line 433
Aborted (core dumped)
It happens when a capture filter is present and a live capture is
restarted. Then the number_to_row_ structure would be truncated which
results in an invalid access.
Fix this by always checking the length before inserting a new mapping.
Do it inside the loop to prevent an unlikely race condition where more
than 10000 packets are received before the next iteration.
Store "row number + 1" to avoid having to initialize the new elements
from resize() with -1, the default value is 0 which is good now.
Change-Id: I88ce955a3551508e773eeadddc6f89bbb583acaf
Reviewed-on: https://code.wireshark.org/review/17111
Reviewed-by: Gerald Combs <gerald@xxxxxxxxxxxxx>
Petri-Dish: Peter Wu <peter@xxxxxxxxxxxxx>
Tested-by: Petri Dish Buildbot <buildbot-no-reply@xxxxxxxxxxxxx>
Reviewed-by: Anders Broman <a.broman58@xxxxxxxxx>
Actions performed:
from 3c8f657 ISAKMP: Fix Result of operation is garbage or undefined found by Clang Analyzer
adds b6f73f2 Qt: fix crash on clearing dfilter after capture restart
Summary of changes:
ui/qt/packet_list_model.cpp | 36 ++++++++++++++++++++++++------------
1 file changed, 24 insertions(+), 12 deletions(-)