From 5609f4a87971ccb9068799e1292fb73c058e8a6e Mon Sep 17 00:00:00 2001 From: Hugo Mercier Date: Fri, 1 Feb 2019 14:20:30 +0100 Subject: [PATCH] Avoid undefined behaviour with signed integer overflow --- src/gui/editorwidgets/qgsrangewidgetwrapper.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/gui/editorwidgets/qgsrangewidgetwrapper.cpp b/src/gui/editorwidgets/qgsrangewidgetwrapper.cpp index 9015d23c23f..15570a8bdb9 100644 --- a/src/gui/editorwidgets/qgsrangewidgetwrapper.cpp +++ b/src/gui/editorwidgets/qgsrangewidgetwrapper.cpp @@ -144,12 +144,12 @@ void QgsRangeWidgetWrapper::initWidget( QWidget *editor ) int minval = min.toInt(); if ( allowNull ) { - int stepval = step.isValid() ? step.toInt() : 1; - int newMinval = minval - stepval; + uint stepval = step.isValid() ? step.toUInt() : 1; // make sure there is room for a new value (i.e. signed integer does not overflow) - if ( newMinval < minval ) + int minvalOverflow = uint( minval ) - stepval; + if ( minvalOverflow < minval ) { - minval = newMinval; + minval = minvalOverflow; } mIntSpinBox->setValue( minval ); QgsSpinBox *intSpinBox( qobject_cast( mIntSpinBox ) );