summaryrefslogtreecommitdiffstats
path: root/src/sql/kernel/qsqlerror.cpp
diff options
context:
space:
mode:
authorVolker Hilsheimer <volker.hilsheimer@qt.io>2021-03-17 15:11:22 +0100
committerVolker Hilsheimer <volker.hilsheimer@qt.io>2021-03-17 17:22:08 +0100
commit872f3fffbf712be90a00873a427e6a4149ed4911 (patch)
treed8efb588254e6752eef83676fae05d69c344d99a /src/sql/kernel/qsqlerror.cpp
parent5a2ee82f2ccb79a9bd8c9309a0ad1532045e79a6 (diff)
QSqlError: protect against self-assignment
Address static analyzer warning 6eb3060fd64e459b6cd5586dc561e0ba. Also make assignment from a moved-from object safe. Task-number: QTBUG-91912 Change-Id: I732dc244ac0c731a02d85e88023dbd952b9eb112 Reviewed-by: Andy Shaw <andy.shaw@qt.io> Reviewed-by: Andrei Golubev <andrei.golubev@qt.io>
Diffstat (limited to 'src/sql/kernel/qsqlerror.cpp')
-rw-r--r--src/sql/kernel/qsqlerror.cpp8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/sql/kernel/qsqlerror.cpp b/src/sql/kernel/qsqlerror.cpp
index 2f51debdd0..5e69778a2a 100644
--- a/src/sql/kernel/qsqlerror.cpp
+++ b/src/sql/kernel/qsqlerror.cpp
@@ -151,9 +151,13 @@ QSqlError::QSqlError(const QSqlError& other)
QSqlError& QSqlError::operator=(const QSqlError& other)
{
- if (d)
+ if (&other == this)
+ return *this;
+ if (d && other.d)
*d = *other.d;
- else
+ else if (d)
+ *d = QSqlErrorPrivate();
+ else if (other.d)
d = new QSqlErrorPrivate(*other.d);
return *this;
}