Issue 117884

Summary: registry: ORegKey::openSubKeys leaks memory
Product: udk Reporter: Stephan Bergmann <stephan.bergmann.secondary>
Component: codeAssignee: Stephan Bergmann <stephan.bergmann.secondary>
Status: CLOSED FIXED QA Contact: issues@udk <issues>
Severity: Normal    
Priority: P3 CC: issues
Version: DEV300m106   
Target Milestone: ---   
Hardware: All   
OS: All   
Issue Type: DEFECT Latest Confirmation in: ---
Developer Difficulty: ---

Description Stephan Bergmann 2011-04-18 09:39:40 UTC
At least with a DEV300_m106 based CWS sb144 setsolar unxlngx6 non-pro build, executing smoketestoo_native with valgrind --tool=memcheck reports

> 0 bytes in 1 blocks are definitely lost in loss record 1 of 17,880
>    at 0x4C24838: malloc (valgrind-trunk/coregrind/m_replacemalloc/vg_replace_malloc.c:236)
>    by 0x4E97592: rtl_allocateMemory (ooo/sal/rtl/source/alloc_global.c:305)
>    by 0x4E975E5: rtl_allocateZeroMemory (ooo/sal/rtl/source/alloc_global.c:340)
>    by 0x156B53F5: ORegKey::openSubKeys(rtl::OUString const&, void***, unsigned int*) (ooo/registry/source/keyimpl.cxx:120)
>    by 0x156B13E7: openSubKeys (ooo/registry/source/regkey.cxx:155)
>    by 0x153FC78C: RegistryKey::openSubKeys(rtl::OUString const&, RegistryKeyArray&) (unxlngx6/inc/registry/registry.hxx:884)
>    by 0x153F8195: (anonymous namespace)::Key::openKeys() (ooo/stoc/source/simpleregistry/simpleregistry.cxx:999)
>    by 0x1518B978: callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, unsigned int, double*, unsigned int) (ooo/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:157)
>    by 0x1518C515: cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) (ooo/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:394)
>    by 0x1518D089: bridges::cpp_uno::shared::unoInterfaceProxyDispatch(_uno_Interface*, _typelib_TypeDescription const*, void*, void**, _uno_Any**) (ooo/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:589)
>    by 0x1A7A518B: binaryurp::IncomingRequest::execute_throw(binaryurp::BinaryAny*, std::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny> >*) const (ooo/binaryurp/source/incomingrequest.cxx:254)
>    by 0x1A7A5693: binaryurp::IncomingRequest::execute() const (ooo/binaryurp/source/incomingrequest.cxx:88)
>    by 0x1A7ABB24: request (ooo/binaryurp/source/reader.cxx:104)
>    by 0x6FE510A: cppu_threadpool::JobQueue::enter(long, unsigned char) (ooo/cppu/source/threadpool/jobqueue.cxx:122)
>    by 0x6FE20BD: cppu_threadpool::ThreadPool::enter(rtl::ByteSequence const&, long) (ooo/cppu/source/threadpool/threadpool.cxx:372)
>    by 0x6FE314B: uno_threadpool_enter (ooo/cppu/source/threadpool/threadpool.cxx:451)
>    by 0x1A79DBB5: binaryurp::Bridge::makeCall(rtl::OUString const&, com::sun::star::uno::TypeDescription const&, bool, std::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny> > const&, binaryurp::BinaryAny*, std::vector<binaryurp::BinaryAny, std::allocator<binaryurp::BinaryAny> >*) (ooo/binaryurp/source/bridge.cxx:572)
>    by 0x1A7A9768: binaryurp::Proxy::do_dispatch_throw(_typelib_TypeDescription const*, void*, void**, _uno_Any**) const (ooo/binaryurp/source/proxy.cxx:191)
>    by 0x1A7A9B06: binaryurp::Proxy::do_dispatch(_typelib_TypeDescription const*, void*, void**, _uno_Any**) const (ooo/binaryurp/source/proxy.cxx:117)
>    by 0x1518AAE6: cpp2uno_call(bridges::cpp_uno::shared::CppInterfaceProxy*, _typelib_TypeDescription const*, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void**, void**, void**, unsigned long*) (ooo/bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx:199)
>    by 0x1518B49C: cpp_vtable_call (ooo/bridges/source/cpp_uno/gcc3_linux_x86-64/cpp2uno.cxx:384)
>    by 0x1518D35D: privateSnippetExecutor (in /net/so-cwsserv02/export/cws/sb144/DEV300/unxlngx6/installation/opt/openoffice.org/ure/lib/libgcc3_uno.so)
>    by 0x1C6E5101: dp_registry::backend::component::(anonymous namespace)::BackendImpl::ComponentPackageImpl::processPackage_(osl::ResettableGuard<osl::Mutex>&, bool, bool, rtl::Reference<dp_misc::AbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) (ooo/desktop/source/deployment/registry/component/dp_component.cxx:1600)
>    by 0x1C6B75CB: dp_registry::backend::Package::processPackage_impl(bool, bool, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) (ooo/desktop/source/deployment/registry/dp_backend.cxx:680)
>    by 0x1C6B7A9F: dp_registry::backend::Package::revokePackage(com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) (ooo/desktop/source/deployment/registry/dp_backend.cxx:737)
>    by 0x1C6FC611: dp_registry::backend::bundle::(anonymous namespace)::BackendImpl::PackageImpl::processPackage_(osl::ResettableGuard<osl::Mutex>&, bool, bool, rtl::Reference<dp_misc::AbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) (ooo/desktop/source/deployment/registry/package/dp_package.cxx:963)
>    by 0x1C6B75CB: dp_registry::backend::Package::processPackage_impl(bool, bool, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) (ooo/desktop/source/deployment/registry/dp_backend.cxx:680)
>    by 0x1C6B7A9F: dp_registry::backend::Package::revokePackage(com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) (ooo/desktop/source/deployment/registry/dp_backend.cxx:737)
>    by 0x1C6A7450: dp_manager::ExtensionManager::removeExtension(rtl::OUString const&, rtl::OUString const&, rtl::OUString const&, com::sun::star::uno::Reference<com::sun::star::task::XAbortChannel> const&, com::sun::star::uno::Reference<com::sun::star::ucb::XCommandEnvironment> const&) (ooo/desktop/source/deployment/manager/dp_extensionmanager.cxx:891)
>    by 0x1518B978: callVirtualMethod(void*, unsigned int, void*, _typelib_TypeDescriptionReference*, bool, unsigned long*, unsigned int, unsigned long*, unsigned int, double*, unsigned int) (ooo/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:157)
>    by 0x1518C515: cpp_call(bridges::cpp_uno::shared::UnoInterfaceProxy*, bridges::cpp_uno::shared::VtableSlot, _typelib_TypeDescriptionReference*, int, _typelib_MethodParameter*, void*, void**, _uno_Any**) (ooo/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:394)
>    by 0x1518D089: bridges::cpp_uno::shared::unoInterfaceProxyDispatch(_uno_Interface*, _typelib_TypeDescription const*, void*, void**, _uno_Any**) (ooo/bridges/source/cpp_uno/gcc3_linux_x86-64/uno2cpp.cxx:589)
>    by 0x2AD4B915: stoc_corefl::IdlInterfaceMethodImpl::invoke(com::sun::star::uno::Any const&, com::sun::star::uno::Sequence<com::sun::star::uno::Any>&) (ooo/stoc/source/corereflection/criface.cxx:714)
>    by 0xB156A7C: SbUnoObject::Notify(SfxBroadcaster&, SfxHint const&) (ooo/basic/source/classes/sbunoobj.cxx:2327)
>    by 0x7D03ACF: SfxBroadcaster::Broadcast(SfxHint const&) (ooo/svl/source/notify/brdcst.cxx:66)
>    by 0xB203BBA: SbxVariable::Broadcast(unsigned long) (ooo/basic/source/sbx/sbxvar.cxx:189)
>    by 0xB1FFB75: SbxValue::SbxValue(SbxValue const&) (ooo/basic/source/sbx/sbxvalue.cxx:277)
>    by 0xB2048E5: SbxVariable::SbxVariable(SbxVariable const&) (ooo/basic/source/sbx/sbxvar.cxx:94)
>    by 0xB1D58EB: SbxMethod::SbxMethod(SbxMethod const&) (ooo/basic/source/runtime/../../inc/basic/sbxmeth.hxx:44)
>    by 0xB1D4F0A: SbiRuntime::FindElement(SbxObject*, unsigned int, unsigned int, unsigned long, unsigned char, unsigned char) (ooo/basic/source/runtime/step2.cxx:258)
>    by 0xB1D522A: SbiRuntime::StepELEM(unsigned int, unsigned int) (ooo/basic/source/runtime/step2.cxx:698)
>    by 0xB1C561B: SbiRuntime::Step() (ooo/basic/source/runtime/runtime.cxx:752)
>    by 0xB12F759: SbModule::Run(SbMethod*) (ooo/basic/source/classes/sbxmod.cxx:1147)
>    by 0xB12FEAC: SbModule::Notify(SfxBroadcaster&, SfxHint const&) (ooo/basic/source/classes/sbxmod.cxx:801)
>    by 0x7D03ACF: SfxBroadcaster::Broadcast(SfxHint const&) (ooo/svl/source/notify/brdcst.cxx:66)
>    by 0xB127515: SbMethod::Broadcast(unsigned long) (ooo/basic/source/classes/sbxmod.cxx:2112)
>    by 0xB1FFB75: SbxValue::SbxValue(SbxValue const&) (ooo/basic/source/sbx/sbxvalue.cxx:277)
>    by 0xB2048E5: SbxVariable::SbxVariable(SbxVariable const&) (ooo/basic/source/sbx/sbxvar.cxx:94)
>    by 0xB1D58EB: SbxMethod::SbxMethod(SbxMethod const&) (ooo/basic/source/runtime/../../inc/basic/sbxmeth.hxx:44)
>    by 0xB1D4F0A: SbiRuntime::FindElement(SbxObject*, unsigned int, unsigned int, unsigned long, unsigned char, unsigned char) (ooo/basic/source/runtime/step2.cxx:258)
Comment 1 Stephan Bergmann 2011-04-18 09:54:15 UTC
fixed as <http://hg.services.openoffice.org/cws/sb144/rev/d20d04b65c98>
Comment 2 Oliver-Rainer Wittmann 2012-06-13 12:23:17 UTC
getting rid of value "enhancement" for field "severity".
For enhancement the field "issue type" shall be used.