Kaydet (Commit) 4da62012 authored tarafından Takeshi Abe's avatar Takeshi Abe Kaydeden (comit) Caolán McNamara

Fix a memory leak by freeing last pBytes

Change-Id: I7d170d704fa8950057698856d12df63992e38381
Reviewed-on: https://gerrit.libreoffice.org/8822Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst eaf26087
......@@ -44,6 +44,7 @@
#include <plugin/impl.hxx>
#include <vcl/svapp.hxx>
#include <boost/scoped_array.hpp>
#if OSL_DEBUG_LEVEL > 1
#include <osl/thread.h>
......@@ -425,20 +426,19 @@ extern "C" {
return NPERR_FILE_NOT_FOUND;
PluginInputStream* pInputStream = (PluginInputStream*)pStream;
sal_Int8* pBytes = NULL;
boost::scoped_array<sal_Int8> pBytes;
int nBytes = 0;
pPlugin->enterPluginCallback();
while( rangeList )
{
if( pBytes && nBytes < (int)rangeList->length )
{
delete [] pBytes;
pBytes = NULL;
pBytes.reset();
if( ! pBytes ) {
nBytes = rangeList->length;
pBytes.reset(new sal_Int8[ nBytes ]);
}
if( ! pBytes )
pBytes = new sal_Int8[ nBytes = rangeList->length ];
int nRead =
pInputStream->read( rangeList->offset, pBytes, rangeList->length );
pInputStream->read( rangeList->offset, pBytes.get(), rangeList->length );
int nPos = 0;
int nNow;
do
......@@ -451,7 +451,7 @@ extern "C" {
stream,
rangeList->offset + nPos,
nNow,
pBytes+nPos );
pBytes.get()+nPos );
nPos += nNow;
nRead -= nNow;
} while( nRead > 0 && nNow );
......
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