summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-03-12 11:35:37 +0000
committerAndras Timar <andras.timar@collabora.com>2018-04-07 17:46:34 +0200
commit949ab164aca33312694cdbf0932c22992cf53dc6 (patch)
tree7ab0033e13a733cb1a1db51de1b239706c74c76d
parentofz#6827 drop last anchor pos if it will be joined (diff)
downloadcore-949ab164aca33312694cdbf0932c22992cf53dc6.tar.gz
core-949ab164aca33312694cdbf0932c22992cf53dc6.zip
forcepoint #25 ensure null termination
Change-Id: I37f4787fb5772e959c45280d9650adcc15591033 Reviewed-on: https://gerrit.libreoffice.org/51130 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Michael Stahl <mstahl@redhat.com> (cherry picked from commit 5a6a1e932f2efe9646d927f20b2cca9ca12a3a70)
-rw-r--r--vcl/unx/generic/printer/jobdata.cxx14
1 files changed, 9 insertions, 5 deletions
diff --git a/vcl/unx/generic/printer/jobdata.cxx b/vcl/unx/generic/printer/jobdata.cxx
index b9359429fd8a..89673ba05b34 100644
--- a/vcl/unx/generic/printer/jobdata.cxx
+++ b/vcl/unx/generic/printer/jobdata.cxx
@@ -274,11 +274,15 @@ bool JobData::constructFromStreamBuffer( const void* pData, sal_uInt32 bytes, Jo
if( rJobData.m_pParser )
{
rJobData.m_aContext.setParser( rJobData.m_pParser );
- const sal_uInt64 nBytes = bytes - aStream.Tell();
- std::unique_ptr<char[]> pRemain(new char[bytes - aStream.Tell()]);
- aStream.ReadBytes( pRemain.get(), nBytes );
- rJobData.m_aContext.rebuildFromStreamBuffer( pRemain.get(), nBytes );
- bContext = true;
+ sal_uInt64 nBytes = bytes - aStream.Tell();
+ std::vector<char> aRemain(nBytes+1);
+ nBytes = aStream.ReadBytes(aRemain.data(), nBytes);
+ if (nBytes)
+ {
+ aRemain[nBytes] = 0;
+ rJobData.m_aContext.rebuildFromStreamBuffer(aRemain.data(), nBytes);
+ bContext = true;
+ }
}
}
}