From c3cdc29900574fefe4dc8b90e2941f2d3371d89c Mon Sep 17 00:00:00 2001 From: Mike Kaganski Date: Fri, 10 Sep 2021 00:49:49 +0200 Subject: 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 (cherry picked from commit 541ddf4580cac8c3f9590be26a487f5fc8e2553c) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/121874 Reviewed-by: Xisco Fauli --- connectivity/source/drivers/firebird/Blob.cxx | 3 +++ 1 file changed, 3 insertions(+) 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 } -- cgit