From 8b100d89f3e76fd2ac9e15424472449cb2483c68 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.6 Change-Id: I6f421d82f9b6fdf84672d755cbbe8d2adec13266 Reviewed-by: Volker Hilsheimer (cherry picked from commit 6287daaa20bfb306d1e2d87d67df961e1da2857a) Reviewed-by: Qt Cherry-pick Bot --- 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); }