Kaydet (Commit) 069e727e authored tarafından Caolán McNamara's avatar Caolán McNamara

ofz#5274 Out-of-memory

Change-Id: I3e69f5e2be848933a43d09c620dafd946486e731
üst a746f20c
......@@ -1953,15 +1953,21 @@ OUString ImplSdPPTImport::ReadSound(sal_uInt32 nSoundRef) const
INetURLObject aGalleryUserSound( aGalleryDir.getToken( nTokenCount - 1, ';' ) );
aGalleryUserSound.Append( aRetval );
const auto nRemainingSize = rStCtrl.remainingSize();
sal_uInt32 nSoundDataLen = aSoundDataRecHd.nRecLen;
std::unique_ptr<sal_uInt8[]> pBuf( new sal_uInt8[ nSoundDataLen ] );
if (nSoundDataLen > nRemainingSize)
{
SAL_WARN("filter.ms", "sound data len longer than remaining stream size");
nSoundDataLen = nRemainingSize;
}
std::vector<sal_uInt8> aBuf(nSoundDataLen);
rStCtrl.ReadBytes(pBuf.get(), nSoundDataLen);
rStCtrl.ReadBytes(aBuf.data(), nSoundDataLen);
SvStream* pOStm = ::utl::UcbStreamHelper::CreateStream( aGalleryUserSound.GetMainURL( INetURLObject::DecodeMechanism::NONE ), StreamMode::WRITE | StreamMode::TRUNC );
if( pOStm )
{
pOStm->WriteBytes(pBuf.get(), nSoundDataLen);
pOStm->WriteBytes(aBuf.data(), nSoundDataLen);
if( pOStm->GetError() == ERRCODE_NONE )
{
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment