summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2022-05-11 09:35:11 -0700
committerThiago Macieira <thiago.macieira@intel.com>2022-05-12 11:52:12 -0700
commit1c7ed7e73eb49fcaba7ef6b964152d75e445b573 (patch)
tree173342be38b6c74b60c47b4bda1bc06b0c761c5a
parent8e07d5095b3493c4d938991cc219ed73f5a8185f (diff)
Revert "MySQL: pedantism: create and destroy the MYSQL_TIME type"
This reverts commit 6feb28918924d80c94b6f435bc3bc981855d59d6. It causes a crash when field.myField is null. Fixes: QTBUG-102489 Pick-to: 6.3 Change-Id: I7e305799c8594ebab255fffd16ee1a41cac8d387 Reviewed-by: Andy Shaw <andy.shaw@qt.io>
-rw-r--r--src/plugins/sqldrivers/mysql/qsql_mysql.cpp10
1 files changed, 3 insertions, 7 deletions
diff --git a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
index 448247d458..7d738a5045 100644
--- a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
+++ b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp
@@ -377,8 +377,6 @@ bool QMYSQLResultPrivate::bindInValues()
char *field = bind->buffer_length ? new char[bind->buffer_length + 1]{} : nullptr;
bind->buffer = f.outField = field;
- if (qIsTimeOrDate(fieldInfo->type))
- new (field) MYSQL_TIME;
++i;
}
@@ -429,11 +427,9 @@ void QMYSQLResult::cleanup()
d->meta = 0;
}
- for (const auto &field : qAsConst(d->fields)) {
- if (qIsTimeOrDate(field.myField->type))
- reinterpret_cast<MYSQL_TIME *>(field.outField)->~MYSQL_TIME();
- delete[] field.outField;
- }
+ int i;
+ for (i = 0; i < d->fields.count(); ++i)
+ delete[] d->fields[i].outField;
if (d->outBinds) {
delete[] d->outBinds;