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