https://bugs.kde.org/show_bug.cgi?id=473634

Milian Wolff <m...@milianw.de> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
      Latest Commit|                            |https://invent.kde.org/sdk/
                   |                            |heaptrack/-/commit/6e558868
                   |                            |fa9555fd8f75e6520cbbde628c7
                   |                            |d424a
             Status|REPORTED                    |RESOLVED
         Resolution|---                         |FIXED

--- Comment #6 from Milian Wolff <m...@milianw.de> ---
Git commit 6e558868fa9555fd8f75e6520cbbde628c7d424a by Milian Wolff.
Committed on 04/09/2023 at 16:44.
Pushed by mwolff into branch 'master'.

Make ChartModel::headerData more resilient to prevent crashes

Return when we get asked for invalid data which seems to happen
through the KDChart attributes model. Fixes assertions/crashes like:

```
#0  0x00007fdcfc88e83c in  () at /usr/lib/libc.so.6
#1  0x00007fdcfc83e668 in raise () at /usr/lib/libc.so.6
#2  0x00007fdcfc8264b8 in abort () at /usr/lib/libc.so.6
#3  0x00007fdcfd8a0098 in qt_assert(char const*, char const*, int) () at
/usr/lib/libQt5Core.so.5
#4  0x00007fdcfd8a0157 in  () at /usr/lib/libQt5Core.so.5
#5  0x00005649da68cf3f in QVector<QBrush>::at(int) const (this=0x6070001170a0,
i=-1) at /usr/include/qt/QtCore/qvector.h:449
#6  0x00005649da70272e in ChartModel::headerData(int, Qt::Orientation, int)
const (this=0x607000117060, section=-1, orientation=Qt::Horizontal,
role=175763350) at
/home/milian/projects/src/heaptrack/src/analyze/gui/chartmodel.cpp:69
#7  0x00007fdcfda67f5e in QAbstractProxyModel::headerData(int, Qt::Orientation,
int) const () at /usr/lib/libQt5Core.so.5
#8  0x00007fdcfda7ba54 in QSortFilterProxyModel::headerData(int,
Qt::Orientation, int) const () at /usr/lib/libQt5Core.so.5
#9  0x00007fdcff9b6dbf in KChart::AttributesModel::headerData(int,
Qt::Orientation, int) const () at /usr/lib/libKChart.so.2
#10 0x00007fdcff9af76a in  () at /usr/lib/libKChart.so.2
#11 0x00007fdcff9a7605 in KChart::AbstractDiagram::brush(int) const () at
/usr/lib/libKChart.so.2
#12 0x00007fdcff9ac495 in KChart::AbstractDiagram::datasetBrushes() const () at
/usr/lib/libKChart.so.2
#13 0x00007fdcff9ccd77 in  () at /usr/lib/libKChart.so.2
#14 0x00007fdcff9cda4b in KChart::Legend::buildLegend() () at
/usr/lib/libKChart.so.2
#15 0x00007fdcff9ce4ba in KChart::Legend::setNeedRebuild() () at
/usr/lib/libKChart.so.2
#16 0x00007fdcfdad17f3 in  () at /usr/lib/libQt5Core.so.5
#17 0x00007fdcff98c4f3 in
KChart::DiagramObserver::diagramDataChanged(KChart::AbstractDiagram*) () at
/usr/lib/libKChart.so.2
#18 0x00007fdcfdad17f3 in  () at /usr/lib/libQt5Core.so.5
#19 0x00007fdcfda59182 in
QAbstractItemModel::modelReset(QAbstractItemModel::QPrivateSignal) () at
/usr/lib/libQt5Core.so.5
#20 0x00007fdcfda8506d in  () at /usr/lib/libQt5Core.so.5
#21 0x00007fdcfdad17f3 in  () at /usr/lib/libQt5Core.so.5
#22 0x00007fdcfda59182 in
QAbstractItemModel::modelReset(QAbstractItemModel::QPrivateSignal) () at
/usr/lib/libQt5Core.so.5
#23 0x00005649da708068 in ChartModel::resetData(ChartData const&)
(this=0x607000117060, data=...) at
/home/milian/projects/src/heaptrack/src/analyze/gui/chartmodel.cpp:261
#24 0x00005649da569a5d in operator()(ChartData const&) const
(__closure=0x604000258e20, data=...) at
/home/milian/projects/src/heaptrack/src/analyze/gui/mainwindow.cpp:223
```

M  +47   -46   src/analyze/gui/chartmodel.cpp

https://invent.kde.org/sdk/heaptrack/-/commit/6e558868fa9555fd8f75e6520cbbde628c7d424a

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to