parent
1798329339
commit
b08370dc44
@ -0,0 +1,44 @@
|
|||||||
|
From 099a72eb674ca25e348747229a188da5d00a58e1 Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||||
|
Date: Mon, 7 Feb 2022 12:17:03 +0000
|
||||||
|
Subject: [PATCH] fix big-endian hsql to firebird migration
|
||||||
|
|
||||||
|
Change-Id: I047d2366ad80eca701924cb0f66b6b1bcfdcac5b
|
||||||
|
---
|
||||||
|
connectivity/source/drivers/firebird/PreparedStatement.cxx | 6 ++++--
|
||||||
|
1 file changed, 4 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/connectivity/source/drivers/firebird/PreparedStatement.cxx b/connectivity/source/drivers/firebird/PreparedStatement.cxx
|
||||||
|
index 9225c3b26895..39fef04a185c 100644
|
||||||
|
--- a/connectivity/source/drivers/firebird/PreparedStatement.cxx
|
||||||
|
+++ b/connectivity/source/drivers/firebird/PreparedStatement.cxx
|
||||||
|
@@ -207,7 +207,8 @@ void SAL_CALL OPreparedStatement::setString(sal_Int32 nParameterIndex,
|
||||||
|
{
|
||||||
|
str = str.copy(0, max_varchar_len);
|
||||||
|
}
|
||||||
|
- const auto nLength = str.getLength();
|
||||||
|
+ const sal_uInt16 nLength = str.getLength();
|
||||||
|
+ static_assert(sizeof(nLength) == 2, "must match dest memcpy len");
|
||||||
|
memcpy(pVar->sqldata, &nLength, 2);
|
||||||
|
// Actual data
|
||||||
|
memcpy(pVar->sqldata + 2, str.getStr(), str.getLength());
|
||||||
|
@@ -908,7 +909,7 @@ void SAL_CALL OPreparedStatement::setBytes(sal_Int32 nParameterIndex,
|
||||||
|
{
|
||||||
|
xBytesCopy.realloc( nMaxSize );
|
||||||
|
}
|
||||||
|
- const auto nSize = xBytesCopy.getLength();
|
||||||
|
+ const sal_uInt16 nSize = xBytesCopy.getLength();
|
||||||
|
// 8000 corresponds to value from lcl_addDefaultParameters
|
||||||
|
// in dbaccess/source/filter/hsqldb/createparser.cxx
|
||||||
|
if (nSize > 8000)
|
||||||
|
@@ -916,6 +917,7 @@ void SAL_CALL OPreparedStatement::setBytes(sal_Int32 nParameterIndex,
|
||||||
|
free(pVar->sqldata);
|
||||||
|
pVar->sqldata = static_cast<char *>(malloc(sizeof(char) * nSize + 2));
|
||||||
|
}
|
||||||
|
+ static_assert(sizeof(nSize) == 2, "must match dest memcpy len");
|
||||||
|
// First 2 bytes indicate string size
|
||||||
|
memcpy(pVar->sqldata, &nSize, 2);
|
||||||
|
// Actual data
|
||||||
|
--
|
||||||
|
2.33.1
|
||||||
|
|
Loading…
Reference in new issue