From 6287daaa20bfb306d1e2d87d67df961e1da2857a Mon Sep 17 00:00:00 2001 From: Christian Ehrlicher Date: Thu, 8 Feb 2024 17:22:57 +0100 Subject: [PATCH] SQL/ODBC: Don't assert when no error record is available When SQLGetDiagRec() does not return an record, the list of DiagRecords might be empty. This will create an assertion when trying to access QList::front() or similar. Therefore we need to check if the list is empty before accessing it. This amends 4ec5c0efc756a39162b43367438fee965c229ae7 Fixes: QTBUG-122073 Pick-to: 6.7 6.6 Change-Id: I6f421d82f9b6fdf84672d755cbbe8d2adec13266 Reviewed-by: Volker Hilsheimer --- src/plugins/sqldrivers/odbc/qsql_odbc.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/plugins/sqldrivers/odbc/qsql_odbc.cpp b/src/plugins/sqldrivers/odbc/qsql_odbc.cpp index 781551ca506..3a325abad63 100644 --- a/src/plugins/sqldrivers/odbc/qsql_odbc.cpp +++ b/src/plugins/sqldrivers/odbc/qsql_odbc.cpp @@ -269,6 +269,8 @@ static DiagRecord combineRecords(const QList &records) a.sqlState + u';' + b.sqlState, a.errorCode + u';' + b.errorCode}; }; + if (records.isEmpty()) + return {}; return std::accumulate(std::next(records.begin()), records.end(), records.front(), add); }