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

Mathieu Malaterre malat at debian.org
Thu Nov 16 11:05:55 GMT 2023


Source: dcmtk
Version: 3.6.8~git20231027.1549d8c-2

Looks like there is a memory leak using the new citrus/oficonv lib:

curl -O https://dclunie.com/images/charset/charsettests.20070405.tar.bz2
tar xf charsettests.20070405.tar.bz2
valgrind  --leak-check=full --show-leak-kinds=all dcm2json
charsettests/SCSARAB  output.json

I cannot reproduce the symptoms using default glibc/iconv (dcmtk 3.6.7-9).

Reports:

==1688197== Memcheck, a memory error detector
==1688197== Copyright (C) 2002-2022, and GNU GPL'd, by Julian Seward et al.
==1688197== Using Valgrind-3.19.0 and LibVEX; rerun with -h for copyright info
==1688197== Command: dcm2json charsettests/SCSARAB output.json
==1688197==
==1688197==
==1688197== HEAP SUMMARY:
==1688197==     in use at exit: 1,562 bytes in 18 blocks
==1688197==   total heap usage: 80,067 allocs, 80,049 frees, 2,124,652
bytes allocated
==1688197==
==1688197== 8 bytes in 1 blocks are still reachable in loss record 1 of 18
==1688197==    at 0x48455EF: calloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F594EA: _citrus_UTF8_stdenc_init
(citrus_stdenc_template.h:84)
==1688197==    by 0x4F4E301: _citrus_stdenc_open (citrus_stdenc.c:118)
==1688197==    by 0x4F55A69: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:374)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==    by 0x498A83C: DcmItem::convertToUTF8() (dcitem.cc:4465)
==1688197==
==1688197== 15 bytes in 1 blocks are still reachable in loss record 2 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4E037F9: strdup (strdup.c:42)
==1688197==    by 0x4F56F9F: _citrus_mapper_open (citrus_mapper.c:370)
==1688197==    by 0x4F5C6F1: _citrus_csmapper_open.constprop.0
(citrus_csmapper.c:411)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:186)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:225)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:283)
==1688197==    by 0x4F55B54: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:382)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==
==1688197== 24 bytes in 1 blocks are still reachable in loss record 3 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F4E2EA: _citrus_stdenc_open (citrus_stdenc.c:112)
==1688197==    by 0x4F55A69: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:374)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==    by 0x498A83C: DcmItem::convertToUTF8() (dcitem.cc:4465)
==1688197==    by 0x10C7D3: main (dcm2json.cc:281)
==1688197==
==1688197== 24 bytes in 1 blocks are still reachable in loss record 4 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F5313F: mapper_open.lto_priv.0 (citrus_mapper.c:274)
==1688197==    by 0x4F56F7B: _citrus_mapper_open (citrus_mapper.c:366)
==1688197==    by 0x4F5C6F1: _citrus_csmapper_open.constprop.0
(citrus_csmapper.c:411)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:186)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:225)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:283)
==1688197==    by 0x4F55B54: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:382)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==
==1688197== 24 bytes in 1 blocks are still reachable in loss record 5 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F4FE96: UnknownInlinedFun (citrus_mapper_std.c:167)
==1688197==    by 0x4F4FE96: rowcol_init (citrus_mapper_std.c:274)
==1688197==    by 0x4F560F4: _citrus_mapper_std_mapper_init.part.0
(citrus_mapper_std.c:391)
==1688197==    by 0x4F53173: mapper_open.lto_priv.0 (citrus_mapper.c:280)
==1688197==    by 0x4F56F7B: _citrus_mapper_open (citrus_mapper.c:366)
==1688197==    by 0x4F5C6F1: _citrus_csmapper_open.constprop.0
(citrus_csmapper.c:411)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:186)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:225)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:283)
==1688197==    by 0x4F55B54: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:382)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==
==1688197== 26 bytes in 1 blocks are still reachable in loss record 6 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4E037F9: strdup (strdup.c:42)
==1688197==    by 0x4F5C7F1: UnknownInlinedFun (citrus_mapper.c:119)
==1688197==    by 0x4F5C7F1: _citrus_csmapper_open.constprop.0
(citrus_csmapper.c:388)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:186)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:225)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:283)
==1688197==    by 0x4F55B54: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:382)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==    by 0x498A83C: DcmItem::convertToUTF8() (dcitem.cc:4465)
==1688197==
==1688197== 32 bytes in 1 blocks are still reachable in loss record 7 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F4E241: _citrus_stdenc_open (citrus_stdenc.c:65)
==1688197==    by 0x4F55A69: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:374)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==    by 0x498A83C: DcmItem::convertToUTF8() (dcitem.cc:4465)
==1688197==    by 0x10C7D3: main (dcm2json.cc:281)
==1688197==
==1688197== 32 bytes in 1 blocks are still reachable in loss record 8 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F530FE: mapper_open.lto_priv.0 (citrus_mapper.c:256)
==1688197==    by 0x4F56F7B: _citrus_mapper_open (citrus_mapper.c:366)
==1688197==    by 0x4F5C6F1: _citrus_csmapper_open.constprop.0
(citrus_csmapper.c:411)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:186)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:225)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:283)
==1688197==    by 0x4F55B54: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:382)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==
==1688197== 40 bytes in 1 blocks are still reachable in loss record 9 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F56B20: UnknownInlinedFun (citrus_iconv.c:182)
==1688197==    by 0x4F56B20: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B20: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==    by 0x498A83C: DcmItem::convertToUTF8() (dcitem.cc:4465)
==1688197==    by 0x10C7D3: main (dcm2json.cc:281)
==1688197==
==1688197== 40 bytes in 1 blocks are still reachable in loss record 10 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F55988: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:359)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==    by 0x498A83C: DcmItem::convertToUTF8() (dcitem.cc:4465)
==1688197==    by 0x10C7D3: main (dcm2json.cc:281)
==1688197==
==1688197== 40 bytes in 1 blocks are still reachable in loss record 11 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F55AA1: UnknownInlinedFun (citrus_iconv_std.c:276)
==1688197==    by 0x4F55AA1: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:382)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==    by 0x498A83C: DcmItem::convertToUTF8() (dcitem.cc:4465)
==1688197==    by 0x10C7D3: main (dcm2json.cc:281)
==1688197==
==1688197== 40 bytes in 1 blocks are still reachable in loss record 12 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F55B01: UnknownInlinedFun (citrus_iconv_std.c:220)
==1688197==    by 0x4F55B01: UnknownInlinedFun (citrus_iconv_std.c:283)
==1688197==    by 0x4F55B01: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:382)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==    by 0x498A83C: DcmItem::convertToUTF8() (dcitem.cc:4465)
==1688197==    by 0x10C7D3: main (dcm2json.cc:281)
==1688197==
==1688197== 40 bytes in 1 blocks are still reachable in loss record 13 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F5C148: _citrus_db_open.constprop.0 (citrus_db.c:77)
==1688197==    by 0x4F56072: _citrus_mapper_std_mapper_init.part.0
(citrus_mapper_std.c:370)
==1688197==    by 0x4F53173: mapper_open.lto_priv.0 (citrus_mapper.c:280)
==1688197==    by 0x4F56F7B: _citrus_mapper_open (citrus_mapper.c:366)
==1688197==    by 0x4F5C6F1: _citrus_csmapper_open.constprop.0
(citrus_csmapper.c:411)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:186)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:225)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:283)
==1688197==    by 0x4F55B54: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:382)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==
==1688197== 64 bytes in 1 blocks are still reachable in loss record 14 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F53093: mapper_open.lto_priv.0 (citrus_mapper.c:233)
==1688197==    by 0x4F56F7B: _citrus_mapper_open (citrus_mapper.c:366)
==1688197==    by 0x4F5C6F1: _citrus_csmapper_open.constprop.0
(citrus_csmapper.c:411)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:186)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:225)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:283)
==1688197==    by 0x4F55B54: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:382)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==
==1688197== 72 bytes in 1 blocks are still reachable in loss record 15 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F4E288: _citrus_stdenc_open (citrus_stdenc.c:88)
==1688197==    by 0x4F55A69: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:374)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==    by 0x498A83C: DcmItem::convertToUTF8() (dcitem.cc:4465)
==1688197==    by 0x10C7D3: main (dcm2json.cc:281)
==1688197==
==1688197== 112 bytes in 1 blocks are still reachable in loss record 16 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F55FDD: _citrus_mapper_std_mapper_init.part.0
(citrus_mapper_std.c:357)
==1688197==    by 0x4F53173: mapper_open.lto_priv.0 (citrus_mapper.c:280)
==1688197==    by 0x4F56F7B: _citrus_mapper_open (citrus_mapper.c:366)
==1688197==    by 0x4F5C6F1: _citrus_csmapper_open.constprop.0
(citrus_csmapper.c:411)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:186)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:225)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:283)
==1688197==    by 0x4F55B54: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:382)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==
==1688197== 113 bytes in 1 blocks are still reachable in loss record 17 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F56A9D: UnknownInlinedFun (citrus_iconv.c:159)
==1688197==    by 0x4F56A9D: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56A9D: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==    by 0x498A83C: DcmItem::convertToUTF8() (dcitem.cc:4465)
==1688197==    by 0x10C7D3: main (dcm2json.cc:281)
==1688197==
==1688197== 816 bytes in 1 blocks are still reachable in loss record 18 of 18
==1688197==    at 0x48407B4: malloc (in
/usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1688197==    by 0x4F5C7DD: UnknownInlinedFun (citrus_mapper.c:114)
==1688197==    by 0x4F5C7DD: _citrus_csmapper_open.constprop.0
(citrus_csmapper.c:388)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:186)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:225)
==1688197==    by 0x4F55B54: UnknownInlinedFun (citrus_iconv_std.c:283)
==1688197==    by 0x4F55B54: _citrus_iconv_std_iconv_init_shared
(citrus_iconv_std.c:382)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:201)
==1688197==    by 0x4F56B83: UnknownInlinedFun (citrus_iconv.c:265)
==1688197==    by 0x4F56B83: _citrus_iconv_open (citrus_iconv.c:349)
==1688197==    by 0x4F59117: _iconv_open (oficonv_iconv.c:107)
==1688197==    by 0x4AE71E2: UnknownInlinedFun (ofchrenc.cc:337)
==1688197==    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)
==1688197==    by 0x49B5F63:
DcmSpecificCharacterSet::selectCharacterSetWithoutCodeExtensions()
(dcspchrs.cc:338)
==1688197==    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)
==1688197==    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)
==1688197==    by 0x498CB96:
DcmItem::convertCharacterSet(std::__cxx11::basic_string<char,
std::char_traits<char>, std::allocator<char> > const&, unsigned long,
bool) (dcitem.cc:4442)
==1688197==    by 0x498A83C: DcmItem::convertToUTF8() (dcitem.cc:4465)
==1688197==    by 0x10C7D3: main (dcm2json.cc:281)
==1688197==
==1688197== LEAK SUMMARY:
==1688197==    definitely lost: 0 bytes in 0 blocks
==1688197==    indirectly lost: 0 bytes in 0 blocks
==1688197==      possibly lost: 0 bytes in 0 blocks
==1688197==    still reachable: 1,562 bytes in 18 blocks
==1688197==         suppressed: 0 bytes in 0 blocks
==1688197==
==1688197== For lists of detected and suppressed errors, rerun with: -s
==1688197== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)



More information about the Debian-med-packaging mailing list