summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2021-09-10 00:49:49 +0200
committerXisco Fauli <xiscofauli@libreoffice.org>2021-09-10 09:48:23 +0200
commitc3cdc29900574fefe4dc8b90e2941f2d3371d89c (patch)
tree1fc6e7d313d8931209cc43d30e2da6643e22da30
parent76bb5cb8578bdfe50ce6bef307e628037d938a94 (diff)
tdf#120129: don't forget to update buffer size to actual length
Otherwise extra bytes get written to the resulting string from the too long buffer. Change-Id: Iccde16b8002f214df6f86f484f288ec464c6b674 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121872 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 541ddf4580cac8c3f9590be26a487f5fc8e2553c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121874 Reviewed-by: Xisco Fauli <xiscofauli@libreoffice.org>
-rw-r--r--connectivity/source/drivers/firebird/Blob.cxx3
1 files changed, 3 insertions, 0 deletions
diff --git a/connectivity/source/drivers/firebird/Blob.cxx b/connectivity/source/drivers/firebird/Blob.cxx
index d254ba49431a..edcc0d233989 100644
--- a/connectivity/source/drivers/firebird/Blob.cxx
+++ b/connectivity/source/drivers/firebird/Blob.cxx
@@ -144,6 +144,9 @@ bool Blob::readOneSegment(uno::Sequence< sal_Int8 >& rDataOut)
OUString sError(StatusVectorToString(m_statusVector, u"isc_get_segment"));
throw IOException(sError, *this);
}
+
+ if (rDataOut.getLength() > nActualSize)
+ rDataOut.realloc(nActualSize);
m_nBlobPosition += nActualSize;
return aRet == isc_segstr_eof; // last segment read
}