summaryrefslogtreecommitdiffstats
path: root/src/widgets/widgets/qmainwindowlayout.cpp
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2020-05-04 17:54:20 +0200
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2020-05-05 19:31:10 +0200
commitc9df93bf2763b182cd4396b9224c9584af4dac00 (patch)
tree3424d0cb22061177e57ec892d8944739889e41ea /src/widgets/widgets/qmainwindowlayout.cpp
parent8d6d1d6fea1d262f97f088eb92441cececad3f88 (diff)
Explicitly prevent out-of-bounds access to tabPositions array
Use DockCount enum value for the size of the array, and explicitly handle when toDockPos returns DockCount (which it might). Change-Id: Id52399607fb1ae74a24a050de7a8481264c03e47 Fixes: QTBUG-83983 Coverity-Id: 218539 Pick-to: 5.15 Reviewed-by: Marc Mutz <marc.mutz@kdab.com>
Diffstat (limited to 'src/widgets/widgets/qmainwindowlayout.cpp')
-rw-r--r--src/widgets/widgets/qmainwindowlayout.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/widgets/widgets/qmainwindowlayout.cpp b/src/widgets/widgets/qmainwindowlayout.cpp
index 857ca31529..158521e13f 100644
--- a/src/widgets/widgets/qmainwindowlayout.cpp
+++ b/src/widgets/widgets/qmainwindowlayout.cpp
@@ -1580,7 +1580,11 @@ void QMainWindowLayout::setTabShape(QTabWidget::TabShape tabShape)
QTabWidget::TabPosition QMainWindowLayout::tabPosition(Qt::DockWidgetArea area) const
{
- return tabPositions[toDockPos(area)];
+ const auto dockPos = toDockPos(area);
+ if (dockPos < QInternal::DockCount)
+ return tabPositions[dockPos];
+ qWarning("QMainWindowLayout::tabPosition called with out-of-bounds value '%d'", int(area));
+ return QTabWidget::North;
}
void QMainWindowLayout::setTabPosition(Qt::DockWidgetAreas areas, QTabWidget::TabPosition tabPosition)