MySQL plugin: fix escaping a QByteArray

1df974590f19dec7b632d000ab9408a4de6f117a introduced a regression which
kills the escaping of a QByteArray because QString::fromUtf8() gets a
wrong length from a QVarLengthArray.

Fixes: QTBUG-105078
Change-Id: Ic2f76c82c246e1e9eaf1d3f907d11fc345b5655e
Reviewed-by: Samuel Gaist <samuel.gaist@idiap.ch>
(cherry picked from commit f9d002ea20e7d5075313e9dcc769ed5348d2b829)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
Christian Ehrlicher 2022-07-19 21:28:35 +02:00 committed by Qt Cherry-pick Bot
parent 29991ceeaf
commit ee37e7c69a

View File

@ -1469,7 +1469,7 @@ QString QMYSQLDriver::formatValue(const QSqlField &field, bool trimStrings) cons
QVarLengthArray<char, 512> buffer(ba.size() * 2 + 1);
auto escapedSize = mysql_real_escape_string(d->mysql, buffer.data(), ba.data(), ba.size());
r.reserve(escapedSize + 3);
r = u'\'' + QString::fromUtf8(buffer) + u'\'';
r = u'\'' + QString::fromUtf8(buffer.data(), escapedSize) + u'\'';
break;
} else {
qWarning("QMYSQLDriver::formatValue: Database not open");