Wireshark-commits: [Wireshark-commits] master-2.2 b5ee450: Qt: fix crash on clearing dfilter after
URL: https://code.wireshark.org/review/gitweb?p=wireshark.git;a=commit;h=b5ee450455e312146abe99a19d84d501902db080
Submitter: Alexis La Goutte (alexis.lagoutte@xxxxxxxxx)
Changed: branch: master-2.2
Repository: wireshark
Commits:
b5ee450 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.
Bug: 12929
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>
(cherry picked from commit b6f73f2567854b1ea417957d7ea5de32b1989aa3)
Reviewed-on: https://code.wireshark.org/review/17844
Reviewed-by: Pascal Quantin <pascal.quantin@xxxxxxxxx>
Petri-Dish: Pascal Quantin <pascal.quantin@xxxxxxxxx>
Reviewed-by: Alexis La Goutte <alexis.lagoutte@xxxxxxxxx>
Actions performed:
from 61ad380 dmp: Restore checksum incorrect info
adds b5ee450 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(-)