[Debian-med-packaging] Bug#1056048: Acknowledgement (Memory leak in dcm2json)

Mathieu Malaterre malat at debian.org
Mon Nov 20 08:57:08 GMT 2023


As pointed out by upstream, one must export the following:

<quote>
You should set the environment variable ICONV_MAX_REUSE to zero
before running such tests:

   export ICONV_MAX_REUSE=0
   valgrind  --leak-check=full ...
<quote>

Which gives now the reduced set of leaks:

% valgrind  --leak-check=full --show-leak-kinds=all dcm2json
charsettests/SCSARAB  output.json
==1928491== Memcheck, a memory error detector
==1928491== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==1928491== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
==1928491== Command: dcm2json charsettests/SCSARAB output.json
==1928491==
==1928491==
==1928491== HEAP SUMMARY:
==1928491==     in use at exit: 842 bytes in 2 blocks
==1928491==   total heap usage: 80,067 allocs, 80,065 frees, 2,124,652
bytes allocated
==1928491==
==1928491== 26 bytes in 1 blocks are still reachable in loss record 1 of 2
==1928491==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1928491==    by 0x4E037F9: strdup (strdup.c:42)
==1928491==    by 0x4F5C7F1: UnknownInlinedFun (citrus_mapper.c:119)
==1928491==    by 0x4F5C7F1: _citrus_csmapper_open.constprop.0
(citrus_csmapper.c:388)
==1928491==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:186)
==1928491==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:225)
==1928491==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:283)
==1928491==    by 0x4F55B54: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:382)
==1928491==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1928491==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1928491==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1928491==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1928491==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1928491==    by 0x4AE71E2:
OFCharacterEncoding::selectEncoding(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&) (ofchrenc.cc:785)
==1928491==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1928491==    by 0x49B6797:
DcmSpecificCharacterSet::selectCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&) (dcspchrs.cc:189)
==1928491==    by 0x498F5A6:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, unsigned long, bool) (dcitem.cc:4403)
==1928491==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1928491==    by 0x498A83C: DcmItem::convertToUTF8() (dcitem.cc:4465)
==1928491==
==1928491== 816 bytes in 1 blocks are still reachable in loss record 2 of 2
==1928491==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1928491==    by 0x4F5C7DD: UnknownInlinedFun (citrus_mapper.c:114)
==1928491==    by 0x4F5C7DD: _citrus_csmapper_open.constprop.0
(citrus_csmapper.c:388)
==1928491==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:186)
==1928491==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:225)
==1928491==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:283)
==1928491==    by 0x4F55B54: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:382)
==1928491==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1928491==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1928491==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1928491==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1928491==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1928491==    by 0x4AE71E2:
OFCharacterEncoding::selectEncoding(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&) (ofchrenc.cc:785)
==1928491==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1928491==    by 0x49B6797:
DcmSpecificCharacterSet::selectCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&) (dcspchrs.cc:189)
==1928491==    by 0x498F5A6:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&,
std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> > const&, unsigned long, bool) (dcitem.cc:4403)
==1928491==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1928491==    by 0x498A83C: DcmItem::convertToUTF8() (dcitem.cc:4465)
==1928491==    by 0x10C7D3: main (dcm2json.cc:281)
==1928491==
==1928491== LEAK SUMMARY:
==1928491==    definitely lost: 0 bytes in 0 blocks
==1928491==    indirectly lost: 0 bytes in 0 blocks
==1928491==      possibly lost: 0 bytes in 0 blocks
==1928491==    still reachable: 842 bytes in 2 blocks
==1928491==         suppressed: 0 bytes in 0 blocks
==1928491==
==1928491== For lists of detected and suppressed errors, rerun with: -s
==1928491== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)



More information about the Debian-med-packaging mailing list