Kaydet (Commit) 372d5d74 authored tarafından Julien Nabet's avatar Julien Nabet

Resolves: fdo#79137 Crash in oox::vml::InputStream::updateBuffer

bt shows:
Program received signal SIGSEGV, Segmentation fault.
0x00002aaadba213fb in oox::vml::InputStream::updateBuffer (this=0x8d7fd80) at /home/julien/compile-libreoffice/libreoffice/oox/source/vml/vmlinputstream.cxx:339
339	    while( (mnBufferPos >= maBuffer.getLength()) && !mxTextStrm->isEOF() )
(gdb) bt
0x00002aaadba213fb in oox::vml::InputStream::updateBuffer (this=0x8d7fd80) at /home/julien/compile-libreoffice/libreoffice/oox/source/vml/vmlinputstream.cxx:339
0x00002aaadba21048 in oox::vml::InputStream::available (this=0x8d7fd80) at /home/julien/compile-libreoffice/libreoffice/oox/source/vml/vmlinputstream.cxx:326
0x00002aaacf5a0249 in sax_fastparser::FastSaxParserImpl::parseStream (this=0x89aea30, maStructSource=...)
at /home/julien/compile-libreoffice/libreoffice/sax/source/fastparser/fastparser.cxx:810

Indeed, mxTextStrm is invalid, so let's test its validity in InputStream constructor

Change-Id: Ifed79603e33b64d11eb07656df17824b7f98058f
üst bfda48e4
...@@ -266,6 +266,8 @@ InputStream::InputStream( const Reference< XComponentContext >& rxContext, const ...@@ -266,6 +266,8 @@ InputStream::InputStream( const Reference< XComponentContext >& rxContext, const
maClosingCData( CREATE_OSTRING( "]]>" ) ), maClosingCData( CREATE_OSTRING( "]]>" ) ),
mnBufferPos( 0 ) mnBufferPos( 0 )
{ {
if (!mxTextStrm.is())
throw IOException();
maOpeningBracket[ 0 ] = '<'; maOpeningBracket[ 0 ] = '<';
maClosingBracket[ 0 ] = '>'; maClosingBracket[ 0 ] = '>';
} }
......
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