diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-08-25 19:08:35 +0100 |
---|---|---|
committer | Michael Stahl <Michael.Stahl@cib.de> | 2019-08-05 14:28:51 +0200 |
commit | 947eadb9a2a9ace960ef34ea38899838cd962981 (patch) | |
tree | f7a89071856e506c2fc0c9b2f4d3cf0d5227800c | |
parent | ofz#10045 Null deref (diff) | |
download | core-947eadb9a2a9ace960ef34ea38899838cd962981.tar.gz core-947eadb9a2a9ace960ef34ea38899838cd962981.zip |
ofz#10056 Null deref
Change-Id: I9ea0f272d0a8b13fb51fec55ac57adca47cafc77
Reviewed-on: https://gerrit.libreoffice.org/59601
Tested-by: Jenkins
Reviewed-by: Michael Stahl <Michael.Stahl@cib.de>
(cherry picked from commit 48c677d55330ac6caf0065fa1776c985b876eead)
-rw-r--r-- | writerfilter/source/ooxml/OOXMLStreamImpl.cxx | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/writerfilter/source/ooxml/OOXMLStreamImpl.cxx b/writerfilter/source/ooxml/OOXMLStreamImpl.cxx index 2b7bff9f0abe..a815db220592 100644 --- a/writerfilter/source/ooxml/OOXMLStreamImpl.cxx +++ b/writerfilter/source/ooxml/OOXMLStreamImpl.cxx @@ -325,12 +325,20 @@ bool OOXMLStreamImpl::lcl_getTarget(const uno::Reference<embed::XRelationshipAcc // simple string concatination here to handle that. uno::Reference<uri::XUriReference> xPart = xFac->parse(sMyTarget); uno::Reference<uri::XUriReference> xAbs = xFac->makeAbsolute(xBase, xPart, true, uri::RelativeUriExcessParentSegments_RETAIN); - rDocumentTarget = xAbs->getPath(); - // path will start with the fragment separator. need to - // remove that - rDocumentTarget = rDocumentTarget.copy( 1 ); - if(sStreamType == sEmbeddingsType) - embeddingsTarget = rDocumentTarget; + if (!xAbs.is()) + { + //it was invalid gibberish + bFound = false; + } + else + { + rDocumentTarget = xAbs->getPath(); + // path will start with the fragment separator. need to + // remove that + rDocumentTarget = rDocumentTarget.copy( 1 ); + if(sStreamType == sEmbeddingsType) + embeddingsTarget = rDocumentTarget; + } } break; |