diff options
author | Michael Stahl <michael.stahl@allotropia.de> | 2024-03-21 18:47:03 +0100 |
---|---|---|
committer | Stephan Bergmann <stephan.bergmann@allotropia.de> | 2024-03-22 10:09:12 +0100 |
commit | 27526cde7fb6cdcf23f23349cdc7ebdaa3d9bcfa (patch) | |
tree | 832c231c4050c5e1d9aa9eb4a68a5eab1fcbf1a6 | |
parent | 9b8f6f881185831ec77f1c692c8726fd1459a746 (diff) |
configmgr: fix parse error if subelements of <info> used
The unused but valid child elements of <info> such as <author> may be
used by exentions. This fails with:
warn:configmgr:15104:10916:configmgr/source/components.cxx:660: error reading "file:///instdir/program/../share/uno_packages/cache/uno_packages/....xcs" com.sun.star.uno.RuntimeException message: "bad member <component> in ....xcs at configmgr/source/xcsparser.cxx:289"
Because ending the first such element sets bIsParsingInfo_ to false.
This fix just concatenates all the characters in all the children,
should work well enough for extensions.
(regression from commit db3078bd8c8e3ce3a99fc3987bb6e93b609990c1)
Change-Id: I17a3fb7014cd34c1d546701036550085365432a4
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165143
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
(cherry picked from commit 8350404ec1c02df8b4f6b4f48947ddbff53d91e5)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165126
Reviewed-by: Stephan Bergmann <stephan.bergmann@allotropia.de>
-rw-r--r-- | configmgr/source/xcsparser.cxx | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/configmgr/source/xcsparser.cxx b/configmgr/source/xcsparser.cxx index e70ddac6a6c9..35f61fa1959e 100644 --- a/configmgr/source/xcsparser.cxx +++ b/configmgr/source/xcsparser.cxx @@ -129,7 +129,9 @@ bool XcsParser::startElement( // illegal content): if (ignoring_ > 0 || (nsId == xmlreader::XmlReader::NAMESPACE_NONE - && (name == "import" || name == "uses" || name == "constraints" || name == "desc"))) + && (name == "import" || name == "uses" || name == "constraints" || name == "desc" + // the following are unused by LO but valid + || name == "deprecated" || name == "author" || name == "label"))) { assert(ignoring_ < LONG_MAX); ++ignoring_; |