]> Some of my projects - localmylist.git/commitdiff
Fix possible crash in Database::exec().
authorAPTX <marek321@gmail.com>
Mon, 15 Apr 2013 19:25:03 +0000 (21:25 +0200)
committerAPTX <marek321@gmail.com>
Mon, 15 Apr 2013 19:25:03 +0000 (21:25 +0200)
Disconnecting clears all prepared statements so a query passed to exec might would invalid.

localmylist/database.cpp

index aba3988167da6615502ce77d99c78981fe9b3263..b448a25edaa7c469ebb4bd31efcb459af9f0c4e5 100644 (file)
@@ -1701,13 +1701,12 @@ bool Database::exec(QSqlQuery &query)
 {
        Q_ASSERT_X(d->thread == QThread::currentThread(), "threads", "DB used from different thread");
 
-       if (!d->db.isOpen())
+       if (!isConnected())
        {
                disconnect();
-               if (!connect())
-                       return false;
+               connect();
 
-               return retryExec(query, true);
+               return false;
        }
 
        if (!query.exec())
@@ -1719,7 +1718,7 @@ bool Database::exec(const QString &sql)
 {
        Q_ASSERT_X(d->thread == QThread::currentThread(), "threads", "DB used from different thread");
 
-       if (!d->db.isOpen())
+       if (!isConnected())
        {
                disconnect();
                if (!connect())