oox/source/vml/vmlformatting.cxx | 1 +
1 file changed, 1 insertion(+)
New commits:
commit 00ca6261e812dc9c4b1cd882b76617b77a86e4e4
Author: Caolán McNamara <[email protected]>
AuthorDate: Thu May 5 12:00:50 2022 +0100
Commit: Caolán McNamara <[email protected]>
CommitDate: Thu May 5 15:06:49 2022 +0200
ofz#47239 Heap-use-after-free
since
commit 9bb83eefc1a1dda5c48efc5d09ef4a6840bf8b58
Date: Tue May 3 16:30:20 2022 +0200
use more string_view in oox::vml::ConversionHelper
==169915== Invalid read of size 2
==169915== at 0x484E2C0: memmove (vg_replace_strmem.c:1382)
==169915== by 0x49D0EE6: char16_t* std::__copy_move<false, true,
std::random_access_iterator_tag>::__copy_m<char16_t>(char16_t const*, char16_t
const*, char16_t*) (stl_algobase.h:431)
==169915== by 0x49D0E94: char16_t* std::__copy_move_a2<false, char16_t
const*, char16_t*>(char16_t const*, char16_t const*, char16_t*)
(stl_algobase.h:494)
==169915== by 0x49D0E64: char16_t* std::__copy_move_a1<false, char16_t
const*, char16_t*>(char16_t const*, char16_t const*, char16_t*)
(stl_algobase.h:522)
==169915== by 0x49D0E03: char16_t* std::__copy_move_a<false, char16_t
const*, char16_t*>(char16_t const*, char16_t const*, char16_t*)
(stl_algobase.h:530)
==169915== by 0x49D0D84: char16_t* std::copy<char16_t const*,
char16_t*>(char16_t const*, char16_t const*, char16_t*) (stl_algobase.h:619)
==169915== by 0x49D0C2E: void rtl::str::Copy<char16_t>(char16_t*,
char16_t const*, int) (strtmpl.hxx:122)
==169915== by 0x49CF83E: void
rtl::str::newFromStr_WithLength<_rtl_uString, char16_t>(_rtl_uString**,
char16_t const*, int, int) (strtmpl.hxx:955)
==169915== by 0x49E3A44: rtl_uString_newFromStr_WithLength
(ustring.cxx:1238)
==169915== by 0x2B76A771:
rtl::OUString::operator=(std::basic_string_view<char16_t,
std::char_traits<char16_t> >) (ustring.hxx:653)
==169915== by 0x2BC69DB4:
oox::vml::TextBoxContext::TextBoxContext(oox::core::ContextHandler2Helper
const&, oox::vml::TextBox&, oox::AttributeList const&, oox::GraphicHelper
const&) (vmltextboxcontext.cxx:199)
==169915== by 0x2BC46E5A: oox::vml::ShapeContext::onCreateContext(int,
oox::AttributeList const&) (vmlshapecontext.cxx:555)
==169915== Address 0x267e1264 is 52 bytes inside a block of size 68 free'd
==169915== at 0x48470E4: free (vg_replace_malloc.c:872)
==169915== by 0x49CFB73: void
rtl::str::release<_rtl_uString>(_rtl_uString*) (strtmpl.hxx:879)
==169915== by 0x49CF8B4: void
rtl::str::newFromStr_WithLength<_rtl_uString, char16_t>(_rtl_uString**,
char16_t const*, int, int) (strtmpl.hxx:966)
==169915== by 0x49E3A44: rtl_uString_newFromStr_WithLength
(ustring.cxx:1238)
==169915== by 0x2B76A771:
rtl::OUString::operator=(std::basic_string_view<char16_t,
std::char_traits<char16_t> >) (ustring.hxx:653)
==169915== by 0x2BC69C87:
oox::vml::TextBoxContext::TextBoxContext(oox::core::ContextHandler2Helper
const&, oox::vml::TextBox&, oox::AttributeList const&, oox::GraphicHelper
const&) (vmltextboxcontext.cxx:194)
==169915== by 0x2BC46E5A: oox::vml::ShapeContext::onCreateContext(int,
oox::AttributeList const&) (vmlshapecontext.cxx:555)
==169915== by 0x2BC47AE0:
oox::vml::RectangleShapeContext::onCreateContext(int, oox::AttributeList
const&) (vmlshapecontext.cxx:715)
==169915== by 0x2BC47B24: non-virtual thunk to
oox::vml::RectangleShapeContext::onCreateContext(int, oox::AttributeList
const&) (vmlshapecontext.cxx:0)
==169915== by 0x2B7341ED:
oox::core::ContextHandler2Helper::implCreateChildContext(int,
com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList>
const&) (contexthandler2.cxx:100)
==169915== by 0x2B734A7A:
oox::core::ContextHandler2::createFastChildContext(int,
com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList>
const&) (contexthandler2.cxx:204)
==169915== by 0x2B735464: non-virtual thunk to
oox::core::ContextHandler2::createFastChildContext(int,
com::sun::star::uno::Reference<com::sun::star::xml::sax::XFastAttributeList>
const&) (contexthandler2.cxx:0)
==169915== Block was alloc'd at
==169915== at 0x484486F: malloc (vg_replace_malloc.c:381)
==169915== by 0x49CFA18: _rtl_uString*
rtl::str::Alloc<_rtl_uString>(int) (strtmpl.hxx:838)
==169915== by 0x49E0D72: rtl_uString_ImplAlloc(int) (ustring.cxx:1194)
==169915== by 0x49E1355: rtl_string2UString_status(_rtl_uString**, char
const*, int, unsigned short, unsigned int, unsigned int*) (ustring.cxx:466)
==169915== by 0x49E1117: rtl_string2UString (ustring.cxx:576)
==169915== by 0x205735F3: rtl::OUString::OUString(char const*, int,
unsigned short, unsigned int) (ustring.hxx:451)
==169915== by 0x20571680:
sax_fastparser::FastAttributeList::getOptionalValue(int) (fastattribs.cxx:283)
==169915== by 0x205716DC: non-virtual thunk to
sax_fastparser::FastAttributeList::getOptionalValue(int) (fastattribs.cxx:0)
==169915== by 0x2BA85A6B: oox::AttributeList::getString(int) const
(attributelist.cxx:173)
==169915== by 0x2BC69B06:
oox::vml::TextBoxContext::TextBoxContext(oox::core::ContextHandler2Helper
const&, oox::vml::TextBox&, oox::AttributeList const&, oox::GraphicHelper
const&) (vmltextboxcontext.cxx:186)
==169915== by 0x2BC46E5A: oox::vml::ShapeContext::onCreateContext(int,
oox::AttributeList const&) (vmlshapecontext.cxx:555)
==169915== by 0x2BC47AE0:
oox::vml::RectangleShapeContext::onCreateContext(int, oox::AttributeList
const&) (vmlshapecontext.cxx:715)
Change-Id: I745d8b718cccf894bda774b0343c2b17f49b0eed
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133880
Tested-by: Jenkins
Tested-by: Caolán McNamara <[email protected]>
Reviewed-by: Caolán McNamara <[email protected]>
diff --git a/oox/source/vml/vmlformatting.cxx b/oox/source/vml/vmlformatting.cxx
index 80e38c2b318b..8f00eb47b8a4 100644
--- a/oox/source/vml/vmlformatting.cxx
+++ b/oox/source/vml/vmlformatting.cxx
@@ -89,6 +89,7 @@ bool ConversionHelper::separatePair( std::u16string_view&
orValue1, std::u16stri
else
{
orValue1 = o3tl::trim(rValue);
+ orValue2 = std::u16string_view();
}
return !orValue1.empty() && !orValue2.empty();
}