Skip to content

Commit 4986d43

Browse files
committed
[mssql] Fix crash when requesting min/max/unique values from invalid field index
1 parent a6ae6c1 commit 4986d43

File tree

1 file changed

+14
-0
lines changed

1 file changed

+14
-0
lines changed

src/providers/mssql/qgsmssqlprovider.cpp

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -573,6 +573,11 @@ QString QgsMssqlProvider::storageType() const
573573
// Returns the minimum value of an attribute
574574
QVariant QgsMssqlProvider::minimumValue( int index ) const
575575
{
576+
if ( index < 0 || index >= mAttributeFields.count() )
577+
{
578+
return QVariant();
579+
}
580+
576581
// get the field name
577582
QgsField fld = mAttributeFields.at( index );
578583
QString sql = QStringLiteral( "select min([%1]) from " )
@@ -605,6 +610,11 @@ QVariant QgsMssqlProvider::minimumValue( int index ) const
605610
// Returns the maximum value of an attribute
606611
QVariant QgsMssqlProvider::maximumValue( int index ) const
607612
{
613+
if ( index < 0 || index >= mAttributeFields.count() )
614+
{
615+
return QVariant();
616+
}
617+
608618
// get the field name
609619
QgsField fld = mAttributeFields.at( index );
610620
QString sql = QStringLiteral( "select max([%1]) from " )
@@ -637,6 +647,10 @@ QVariant QgsMssqlProvider::maximumValue( int index ) const
637647
QSet<QVariant> QgsMssqlProvider::uniqueValues( int index, int limit ) const
638648
{
639649
QSet<QVariant> uniqueValues;
650+
if ( index < 0 || index >= mAttributeFields.count() )
651+
{
652+
return uniqueValues;
653+
}
640654

641655
// get the field name
642656
QgsField fld = mAttributeFields.at( index );

0 commit comments

Comments
 (0)