[Debian-med-packaging] Bug#988417: dcmtk: Memory leak in OFCharacterEncoding::selectEncoding
Mathieu Malaterre
malat at debian.org
Wed May 12 13:45:47 BST 2021
Package: dcmtk
Version: 3.6.4-2.1
Severity: normal
Dear Maintainer,
The DCMTK library seems to leaves memory around after the end of the
process.
Steps:
% valgrind --show-leak-kinds=all --leak-check=full dcmconv +U8 input.dcm output.dcm
==5076== Memcheck, a memory error detector
==5076== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==5076== Using Valgrind-3.14.0 and LibVEX; rerun with -h for copyright info
==5076== Command: dcmconv +U8 input.dcm output.dcm
==5076==
==5076==
==5076== HEAP SUMMARY:
==5076== in use at exit: 112 bytes in 2 blocks
==5076== total heap usage: 77,131 allocs, 77,129 frees, 5,392,709 bytes allocated
==5076==
==5076== 56 bytes in 1 blocks are still reachable in loss record 1 of 2
==5076== at 0x483577F: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==5076== by 0x50FD389: UDataMemory_createNewInstance_63 (udatamem.cpp:47)
==5076== by 0x50FB0FA: setCommonICUData(UDataMemory*, signed char, UErrorCode*) (udata.cpp:173)
==5076== by 0x50FBE5D: setCommonICUDataPointer (udata.cpp:217)
==5076== by 0x50FBE5D: openCommonData(char const*, int, UErrorCode*) (udata.cpp:718)
==5076== by 0x50FBF7C: doLoadFromCommonData(signed char, char const*, char const*, char const*, char const*, char const*, char const*, char const*, signed char (*)(void*, char const*, char const*, UDataInfo const*), void*, UErrorCode*, UErrorCode*) [clone .constprop.10] (udata.cpp:1065)
==5076== by 0x50FCA36: doOpenChoice(char const*, char const*, char const*, signed char (*)(void*, char const*, char const*, UDataInfo const*), void*, UErrorCode*) (udata.cpp:1347)
==5076== by 0x51096E9: initAliasData(UErrorCode&) (ucnv_io.cpp:242)
==5076== by 0x5109F57: umtx_initOnce (umutex.h:274)
==5076== by 0x5109F57: umtx_initOnce (umutex.h:268)
==5076== by 0x5109F57: haveAliasData (ucnv_io.cpp:314)
==5076== by 0x5109F57: ucnv_io_getConverterName_63 (ucnv_io.cpp:754)
==5076== by 0x5107E16: ucnv_loadSharedData_63 (ucnv_bld.cpp:784)
==5076== by 0x51082C3: ucnv_createConverter_63 (ucnv_bld.cpp:839)
==5076== by 0x4AC4B68: create (ofchrenc.cc:73)
==5076== by 0x4AC4B68: OFCharacterEncoding::selectEncoding(OFString const&, OFString const&) (ofchrenc.cc:693)
==5076== by 0x49A991C: DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions() (dcspchrs.cc:292)
==5076==
==5076== 56 bytes in 1 blocks are still reachable in loss record 2 of 2
==5076== at 0x483577F: malloc (in /usr/lib/x86_64-linux-gnu/valgrind/vgpreload_memcheck-amd64-linux.so)
==5076== by 0x50FD389: UDataMemory_createNewInstance_63 (udatamem.cpp:47)
==5076== by 0x50FC030: checkDataItem (udata.cpp:967)
==5076== by 0x50FC030: checkDataItem (udata.cpp:944)
==5076== by 0x50FC030: doLoadFromCommonData(signed char, char const*, char const*, char const*, char const*, char const*, char const*, char const*, signed char (*)(void*, char const*, char const*, UDataInfo const*), void*, UErrorCode*, UErrorCode*) [clone .constprop.10] (udata.cpp:1077)
==5076== by 0x50FCA36: doOpenChoice(char const*, char const*, char const*, signed char (*)(void*, char const*, char const*, UDataInfo const*), void*, UErrorCode*) (udata.cpp:1347)
==5076== by 0x51096E9: initAliasData(UErrorCode&) (ucnv_io.cpp:242)
==5076== by 0x5109F57: umtx_initOnce (umutex.h:274)
==5076== by 0x5109F57: umtx_initOnce (umutex.h:268)
==5076== by 0x5109F57: haveAliasData (ucnv_io.cpp:314)
==5076== by 0x5109F57: ucnv_io_getConverterName_63 (ucnv_io.cpp:754)
==5076== by 0x5107E16: ucnv_loadSharedData_63 (ucnv_bld.cpp:784)
==5076== by 0x51082C3: ucnv_createConverter_63 (ucnv_bld.cpp:839)
==5076== by 0x4AC4B68: create (ofchrenc.cc:73)
==5076== by 0x4AC4B68: OFCharacterEncoding::selectEncoding(OFString const&, OFString const&) (ofchrenc.cc:693)
==5076== by 0x49A991C: DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions() (dcspchrs.cc:292)
==5076== by 0x49ABFFC: DcmSpecificCharacterSet::selectCharacterSet(OFString const&, OFString const&) (dcspchrs.cc:147)
==5076== by 0x497C7F3: DcmItem::convertCharacterSet(OFString const&, OFString const&, unsigned long, bool) (dcitem.cc:4174)
==5076==
==5076== LEAK SUMMARY:
==5076== definitely lost: 0 bytes in 0 blocks
==5076== indirectly lost: 0 bytes in 0 blocks
==5076== possibly lost: 0 bytes in 0 blocks
==5076== still reachable: 112 bytes in 2 blocks
==5076== suppressed: 0 bytes in 0 blocks
==5076==
==5076== For counts of detected and suppressed errors, rerun with: -v
==5076== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
-- System Information:
Debian Release: 10.9
APT prefers stable-updates
APT policy: (500, 'stable-updates'), (500, 'stable-debug'), (500, 'proposed-updates-debug'), (500, 'stable')
Architecture: amd64 (x86_64)
Kernel: Linux 5.10.0-0.bpo.5-amd64 (SMP w/4 CPU cores)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US:en (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
Versions of packages dcmtk depends on:
ii adduser 3.118
ii libc6 2.28-10
ii libdcmtk14 3.6.4-2.1
ii libgcc1 1:8.3.0-6
ii libstdc++6 8.3.0-6
ii libxml2 2.9.4+dfsg1-7+deb10u1
ii zlib1g 1:1.2.11.dfsg-1
dcmtk recommends no packages.
dcmtk suggests no packages.
-- no debconf information
More information about the Debian-med-packaging
mailing list