Julien Nabet 871dc7bce1 tdf#165980: fix crash when launching help with "--with-help"
assertion:
5  0x00007f0f5578cf2a in ByteGrabber::ByteGrabber (this=0x558123967710, xIstream=uno::Reference to (chelp::XInputStream_impl *) 0x558124099a20)
   at /home/julien/lo/libo_perf/package/source/zipapi/ByteGrabber.cxx:44
6  0x00007f0f557a0793 in ZipFile::ZipFile
   (this=0x558123967640, aMutexHolder=empty rtl::Reference, xInput=uno::Reference to (chelp::XInputStream_impl *) 0x558124099a20, xContext=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x558121aacc48, bInitialise=true, bForceRecovery=false, checks=ZipFile::Checks::Default) at /home/julien/lo/libo_perf/package/source/zipapi/ZipFile.cxx:90
7  0x00007f0f5580208d in std::_Construct<ZipFile, rtl::Reference<comphelper::RefCountedMutex>&, com::sun::uno::Reference<com::sun::io::XInputStream>&, com::sun::uno::Reference<com::sun::uno::XComponentContext> const&, bool, bool&, ZipFile::Checks> (__p=0x558123967640) at /usr/include/c++/14/bits/stl_construct.h:119
8  0x00007f0f557ffb2d in std::_Optional_payload_base<ZipFile>::_M_construct<rtl::Reference<comphelper::RefCountedMutex>&, com::sun::uno::Reference<com::sun::io::XInputStream>&, com::sun::uno::Reference<com::sun::uno::XComponentContext> const&, bool, bool&, ZipFile::Checks> (this=0x558123967640) at /usr/include/c++/14/optional:274
9  0x00007f0f557fd87d in std::_Optional_base_impl<ZipFile, std::_Optional_base<ZipFile, false, false> >::_M_construct<rtl::Reference<comphelper::RefCountedMutex>&, com::sun::uno::Reference<com::sun::io::XInputStream>&, com::sun::uno::Reference<com::sun::uno::XComponentContext> const&, bool, bool&, ZipFile::Checks> (this=0x558123967640) at /usr/include/c++/14/optional:455
10 0x00007f0f557f9186 in std::optional<ZipFile>::emplace<rtl::Reference<comphelper::RefCountedMutex>&, com::sun::uno::Reference<com::sun::io::XInputStream>&, com::sun::uno::Reference<com::sun::uno::XComponentContext> const&, bool, bool&, ZipFile::Checks> (this=0x558123967640) at /usr/include/c++/14/optional:916
11 0x00007f0f557e63f3 in ZipPackage::initialize (this=0x558123967510, aArguments=uno::Sequence of length 2 = {...}) at /home/julien/lo/libo_perf/package/source/zippackage/ZipPackage.cxx:893
12 0x00007f0f876d6b87 in cppuhelper::ServiceManager::Data::Implementation::doCreateInstanceWithArguments
   (this=0x558121b4fd80, context=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x558121aacc48, arguments=uno::Sequence of length 2 = {...})
   at /home/julien/lo/libo_perf/cppuhelper/source/servicemanager.cxx:728
13 0x00007f0f876d6884 in cppuhelper::ServiceManager::Data::Implementation::createInstanceWithArguments
   (this=0x558121b4fd80, context=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x558121aacc48, singletonRequest=false, arguments=uno::Sequence of length 2 = {...})
   at /home/julien/lo/libo_perf/cppuhelper/source/servicemanager.cxx:690
14 0x00007f0f876d9860 in cppuhelper::ServiceManager::createInstanceWithArgumentsAndContext
   (this=0x558121ab2c10, ServiceSpecifier="com.sun.star.packages.comp.ZipPackage", Arguments=uno::Sequence of length 2 = {...}, Context=uno::Reference to (cppu::(anonymous namespace)::ComponentContext *) 0x558121aacc48) at /home/julien/lo/libo_perf/cppuhelper/source/servicemanager.cxx:1015
15 0x00007f0f5552856d in chelp::Databases::jarFile (this=0x55812318ee80, rGuard=..., jar=u"shared.jar", Language="fr") at /home/julien/lo/libo_perf/xmlhelp/source/cxxhelp/provider/databases.cxx:842
16 0x00007f0f5552c519 in chelp::JarFileIterator::nextJarFile (this=0x7ffc4d067e80, rGuard=..., o_xParentPackageBundle=empty uno::Reference, o_pExtensionPath=0x0, o_pExtensionRegistryPath=0x0)
   at /home/julien/lo/libo_perf/xmlhelp/source/cxxhelp/provider/databases.cxx:1593

See almost full bt here:
https://bugs.documentfoundation.org/attachment.cgi?id=200590&action=edit

The way to retrieve the zip content (Jar is a zip) since the stream didn't implement comphelper::ByteReader.
Instead of changing XInputStream_impl to implement it, I thought it could be interesting to copy a bulletproof way
from by using ZipPackageHelper in unotools/source/misc/ZipPackageHelper.cxx

m_aZipFileTable is now completely useless (BTW compilerplugins/clang/unusedfields.writeonly.results already indicated
that the member was only written)

If if it works well, we could get rid of xmlhelp/source/cxxhelp/provider/inputstream.hxx and cxx associated.

Change-Id: Ie9c3b5808c835206830e87b129efcdf98ba505af
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/184732
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Tested-by: Jenkins
2025-04-30 13:40:13 +02:00
..
2024-01-16 13:20:10 +01:00
2024-06-26 13:31:14 +02:00
2024-11-14 17:13:32 +01:00
2024-06-26 13:31:14 +02:00
2024-03-26 17:16:47 +01:00
2024-04-08 09:49:53 +02:00
2024-05-09 15:19:37 +02:00
2024-05-09 15:19:37 +02:00
2024-11-13 13:08:16 +01:00
2024-11-13 13:08:16 +01:00
2024-04-23 11:28:55 +02:00
2024-06-19 23:03:02 +02:00
2024-06-29 17:22:12 +02:00
2024-12-04 10:22:09 +01:00
2025-02-12 12:13:00 +01:00