
# ==23596== Conditional jump or move depends on uninitialised value(s)
# ==23596==    at 0x9A404E7: ??? (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so)
# ==23596==    by 0x9A41CB1: __log_put (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so)
# ==23596==    by 0x9A42F2D: ??? (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so)
# ==23596==    by 0x9A43D9F: __log_put_record (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so)
# ==23596==    by 0x9986B1B: __ham_add_el (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so)
# ==23596==    by 0x997E1FD: ??? (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so)
# ==23596==    by 0x99F5548: __dbc_iput (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so)
# ==23596==    by 0x99F314F: __db_put (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so)
# ==23596==    by 0x9A04EBA: __db_put_pp (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so)
# ==23596==    by 0x103CC953: do_create (e-book-backend-file.c:915)
# ==23596==    by 0x103CCBFC: e_book_backend_file_create_contacts (e-book-backend-file.c:988)
# ==23596==    by 0x4E4AC31: e_book_backend_sync_create_contacts (e-book-backend-sync.c:85)
# ==23596==    by 0x4E4D3D7: book_backend_create_contacts (e-book-backend-sync.c:493)
# ==23596==    by 0x4E4ED2A: e_book_backend_create_contacts (e-book-backend.c:465)
# ==23596==    by 0x4E513D3: operation_thread (e-data-book.c:157)
# ==23596==    by 0x83E9D07: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==23596==    by 0x83E77E5: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==23596==    by 0x8678B4F: start_thread (pthread_create.c:304)
# ==23596==    by 0x896690C: clone (clone.S:112)
# ==23596==  Uninitialised value was created by a stack allocation
# ==23596==    at 0x994DB80: ??? (in /usr/lib/x86_64-linux-gnu/libdb-5.1.so)
# ==23596== 
{
   libdb-5 cond from stack
   Memcheck:Cond
   obj:*/libdb-5.1.so
   fun:__log_put
   obj:*/libdb-5.1.so
   fun:__log_put_record
   fun:__ham_add_el
   ...
   fun:__db_put_pp
}

# ==7846== Invalid read of size 8
# ==7846==    at 0x4015B24: (within /lib/ld-2.6.1.so)
# ==7846==    by 0x400A8F7: (within /lib/ld-2.6.1.so)
# ==7846==    by 0x4006174: (within /lib/ld-2.6.1.so)
# ==7846==    by 0x40085F7: (within /lib/ld-2.6.1.so)
# ==7846==    by 0x4011C98: (within /lib/ld-2.6.1.so)
# ==7846==    by 0x400DA05: (within /lib/ld-2.6.1.so)
# ==7846==    by 0x401155A: (within /lib/ld-2.6.1.so)
# ==7846==    by 0x93D74FF: (within /lib/libc-2.6.1.so)
# ==7846==    by 0x400DA05: (within /lib/ld-2.6.1.so)
# ==7846==    by 0x93D7666: __libc_dlopen_mode (in /lib/libc-2.6.1.so)
# ==7846==    by 0x93B1F1C: __nss_lookup_function (in /lib/libc-2.6.1.so)
# ==7846==    by 0xDB5345A: (within /lib/libnss_compat-2.6.1.so)
# ==7846==  Address 0xDB076E8 is 16 bytes inside a block of size 21 alloc'd
# ==7846==    at 0x4C21C16: malloc (vg_replace_malloc.c:149)
# ==7846==    by 0x4008AF5: (within /lib/ld-2.6.1.so)
# ==7846==    by 0x4011C98: (within /lib/ld-2.6.1.so)
# ==7846==    by 0x400DA05: (within /lib/ld-2.6.1.so)
# ==7846==    by 0x401155A: (within /lib/ld-2.6.1.so)
# ==7846==    by 0x93D74FF: (within /lib/libc-2.6.1.so)
# ==7846==    by 0x400DA05: (within /lib/ld-2.6.1.so)
# ==7846==    by 0x93D7666: __libc_dlopen_mode (in /lib/libc-2.6.1.so)
# ==7846==    by 0x93B1F1C: __nss_lookup_function (in /lib/libc-2.6.1.so)
# ==7846==    by 0xDB5345A: (within /lib/libnss_compat-2.6.1.so)
# ==7846==    by 0xDB54948: _nss_compat_getpwnam_r (in /lib/libnss_compat-2.6.1.so)
# ==7846==    by 0x9367205: getpwnam_r (in /lib/libc-2.6.1.so)
{
   getpwnam (Ubuntu Gutsy, 64 bit)
   Memcheck:Addr8
   obj:/lib/ld-2.6.1.so
   obj:/lib/ld-2.6.1.so
   obj:/lib/ld-2.6.1.so
   obj:/lib/ld-2.6.1.so
   obj:/lib/ld-2.6.1.so
   obj:/lib/ld-2.6.1.so
   obj:/lib/ld-2.6.1.so
   obj:/lib/libc-2.6.1.so
   obj:/lib/ld-2.6.1.so
   fun:__libc_dlopen_mode
   fun:__nss_lookup_function
   obj:/lib/libnss_compat-2.6.1.so
}

# ==7775== Invalid write of size 8
# ==7775==    at 0x400A811: do_lookup_x (dl-lookup.c:249)
# ==7775==    by 0x403E55F: ???
# ==7775==    by 0xFFEFFD33F: ???
# ==7775==    by 0xFFEFFD2DF: ???
# ==7775==    by 0xFFEFFD3FF: ???
# ==7775==    by 0x4016534: _dl_runtime_resolve (dl-trampoline.S:45)
# ==7775==    by 0x57E149A: SyncEvo::SyncConfig::addPeers(std::string const&, std::string const&, std::list<std::pair<std::string, std::string>, std::allocator<std::pair<std::string, std::string> > >&) (SyncConfig.cpp:763)
# ==7775==    by 0x57E0730: SyncEvo::SyncConfig::getConfigs() (SyncConfig.cpp:810)
# ==7775==    by 0x57E0CC0: SyncEvo::SyncConfig::normalizeConfigString(std::string const&, SyncEvo::SyncConfig::NormalizeFlags) (SyncConfig.cpp:251)
# ==7775==    by 0x57E3C52: SyncEvo::SyncConfig::SyncConfig(std::string const&, boost::shared_ptr<SyncEvo::ConfigTree>, std::string const&) (SyncConfig.cpp:457)
# ==7775==    by 0x57F04CF: SyncEvo::SyncConfig::createPeerTemplate(std::string const&) (SyncConfig.cpp:943)
# ==7775==    by 0x56BD9E4: SyncEvo::Cmdline::run() (Cmdline.cpp:873)
# ==7775==    by 0x45ADA1: SyncEvo::CmdlineWrapper::run() (cmdline-wrapper.h:66)
# ==7775==    by 0x45053B: SyncEvo::SessionHelper::doExecute(std::vector<std::string, std::allocator<std::string> > const&, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > const&, boost::shared_ptr<GDBusCXX::Result1<bool> > const&) (session-helper.cpp:314)
# ==7775==    by 0x44FBC7: operator() (function_template.hpp:767)
# ==7775==    by 0x44FBC7: SyncEvo::SessionHelper::run() (session-helper.cpp:202)
# ==7775==    by 0x443827: main (sync-helper.cpp:187)
# ==7775==  Address 0xffeffce88 is on thread 1's stack
# ==7775==  in frame #0, created by do_lookup_x (dl-lookup.c:82)
# ==7775==
#
# First seen on Ubuntu Vivid.
{
   _dl_runtime_resolve
   Memcheck:Addr8
   fun:do_lookup_x
   ...
   fun:_dl_runtime_resolve
}

# ==10992== 156 (36 direct, 120 indirect) bytes in 1 blocks are definitely lost in loss record 7 of 29
# ==10992==    at 0x401D4B0: malloc (vg_replace_malloc.c:149)
# ==10992==    by 0x4610A09: (within /lib/tls/i686/cmov/libc-2.3.6.so)
# ==10992==    by 0x46110F6: __nss_database_lookup (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==10992==    by 0x4142149: ???
# ==10992==    by 0x4143664: ???
# ==10992==    by 0x45C08A4: getpwnam_r (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==10992==    by 0x4482145: g_get_any_init_do (gutils.c:1566)
# ==10992==    by 0x4483A48: g_get_home_dir (gutils.c:1717)
# ==10992==    by 0x43970FA: ORBit_option_parse (orbit-options.c:297)
# ==10992==    by 0x439D619: CORBA_ORB_init (corba-orb.c:410)
# ==10992==    by 0x434487D: bonobo_activation_orb_init (bonobo-activation-init.c:601)
# ==10992==    by 0x415CCD2: (within /usr/lib/libgnome-2.so.0.1600.0)
{
   getpwnam_r
   Memcheck:Leak
   fun:malloc
   obj:*
   fun:*nss_database_lookup
   obj:*
   obj:*
   fun:getpwnam_r
}

# ==19822== 300 (60 direct, 240 indirect) bytes in 1 blocks are definitely lost in loss record 649 of 788
# ==19822==    at 0x4C27673: malloc (vg_replace_malloc.c:263)
# ==19822==    by 0xA43599C: nss_parse_service_list (nsswitch.c:626)
# ==19822==    by 0xA436171: __nss_database_lookup (nsswitch.c:167)
# ==19822==    by 0x17C8C1EF: ???
# ==19822==    by 0x17C8CD94: ???
# ==19822==    by 0xA3F5ADC: getpwuid_r@@GLIBC_2.2.5 (getXXbyYY_r.c:256)
# ==19822==    by 0x95742E7: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x95775FE: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x957788A: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x9577916: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x9577AD8: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x9577BA5: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x9552188: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x9551260: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x955178D: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x9552C09: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x956C188: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x956CE62: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x956D8D2: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x956C481: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x95573BB: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x956E5E9: dbus_watch_handle (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==19822==    by 0x6139EE: dispatch_watch (mainloop.c:126)
# ==19822==    by 0x92980CE: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==19822==    by 0x92988C7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==19822==    by 0x9298E01: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==19822==    by 0x7B849B: SyncEvo::LocalTransportAgent::wait(bool) (LocalTransportAgent.cpp:333)
# ==19822==    by 0x73A153: SyncEvo::SyncContext::doSync() (SyncContext.cpp:3689)
# ==19822==    by 0x741334: SyncEvo::SyncContext::sync(SyncEvo::SyncReport*) (SyncContext.cpp:3003)
# ==19822==    by 0x5F3C68: SyncEvo::SessionHelper::doSync(SyncEvo::SessionCommon::SyncParams const&, boost::shared_ptr<GDBusCXX::Result0> const&) (session-helper.cpp:96)
# ==19822== 
{
   nss_parse_service_list
   Memcheck:Leak
   fun:malloc
   fun:nss_parse_service_list
   ...
   fun:getpwuid_r*
}

# ==7948== 292 (52 direct, 240 indirect) bytes in 1 blocks are definitely lost in loss record 7 of 53
# ==7948==    at 0x4C21C16: malloc (vg_replace_malloc.c:149)
# ==7948==    by 0x93B2120: (within /lib/libc-2.6.1.so)
# ==7948==    by 0x93B29DE: __nss_database_lookup (in /lib/libc-2.6.1.so)
# ==7948==    by 0xDB5343F: ???
# ==7948==    by 0xDB54948: ???
# ==7948==    by 0x9367205: getpwnam_r (in /lib/libc-2.6.1.so)
# ==7948==    by 0x70FC3BF: (within /usr/lib/libglib-2.0.so.0.1400.1)
# ==7948==    by 0x70FD9FA: g_get_user_name (in /usr/lib/libglib-2.0.so.0.1400.1)
# ==7948==    by 0x5F1E3F4: gconf_get_daemon_dir (in /usr/lib/libgconf-2.so.4.1.2)
# ==7948==    by 0x5F20440: gconf_activate_server (in /usr/lib/libgconf-2.so.4.1.2)
# ==7948==    by 0x5F2B767: (within /usr/lib/libgconf-2.so.4.1.2)
# ==7948==    by 0x5F2C2CD: (within /usr/lib/libgconf-2.so.4.1.2)
{
   getpwnam_r leak
   Memcheck:Leak
   fun:malloc
   obj:/lib/libc-*.so
   fun:*nss_database_lookup
   obj:*
   obj:*
   fun:getpwnam_r
}

# ==7948== 1,152 bytes in 4 blocks are possibly lost in loss record 19 of 53
# ==7948==    at 0x4C20F3F: calloc (vg_replace_malloc.c:279)
# ==7948==    by 0x4010F58: _dl_allocate_tls (in /lib/ld-2.6.1.so)
# ==7948==    by 0x90B9A92: pthread_create@@GLIBC_2.2.5 (in /lib/libpthread-2.6.1.so)
# ==7948==    by 0x6A512FB: (within /usr/lib/libgthread-2.0.so.0.1400.1)
# ==7948==    by 0x70F279E: g_thread_create_full (in /usr/lib/libglib-2.0.so.0.1400.1)
# ==7948==    by 0x70F4155: (within /usr/lib/libglib-2.0.so.0.1400.1)
# ==7948==    by 0x70F430F: g_thread_pool_push (in /usr/lib/libglib-2.0.so.0.1400.1)
# ==7948==    by 0x6607E18: giop_thread_request_push_key (in /usr/lib/libORBit-2.so.0.1.0)
# ==7948==    by 0x661E3F3: (within /usr/lib/libORBit-2.so.0.1.0)
# ==7948==    by 0x661F41C: ORBit_handle_request (in /usr/lib/libORBit-2.so.0.1.0)
# ==7948==    by 0x660A718: giop_connection_handle_input (in /usr/lib/libORBit-2.so.0.1.0)
# ==7948==    by 0x662551F: (within /usr/lib/libORBit-2.so.0.1.0)
{
   thread local storage
   Memcheck:Leak
   fun:calloc
   fun:*dl_allocate_tls
   fun:pthread_create*
}

{
   thread local storage
   Memcheck:Leak
   fun:calloc
   obj:*
   fun:*dl_allocate_tls
   fun:pthread_create*
}

# ==10979== Conditional jump or move depends on uninitialised value(s)
# ==10979==    at 0x4010DF3: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x400B729: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x4008202: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x46368CC: (within /lib/tls/i686/cmov/libc-2.3.6.so)
# ==10979==    by 0x4636A09: _dl_sym (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==10979==    by 0x451DEE7: (within /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==10979==    by 0x400B44E: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x451E42C: (within /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==10979==    by 0x451DE7A: dlsym (in /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==10979==    by 0x434A1E3: g_module_symbol (gmodule-dl.c:147)
# ==10979==    by 0x434A6F1: g_module_open (gmodule.c:484)
# ==10979==    by 0x4681D3A: e_data_server_module_load (e-data-server-module.c:77)
{
   dlsym
   Memcheck:Cond
   obj:*ld-2.3.6.so
   obj:*ld-2.3.6.so
   obj:*ld-2.3.6.so
   obj:*libc-2.3.6*
   fun:*dl*sym
   fun:g_module_symbol
}
# ==10979== Invalid read of size 4
# ==10979==    at 0x4010E00: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x4004B78: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x4006792: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x400A1F6: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x400B44E: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x400A3CA: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x46344D4: (within /lib/tls/i686/cmov/libc-2.3.6.so)
# ==10979==    by 0x400B44E: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x4633EDE: _dl_open (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==10979==    by 0x451DD8D: (within /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==10979==    by 0x400B44E: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x451E42C: (within /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==10979==  Address 0x4E71040 is 24 bytes inside a block of size 25 alloc'd
# ==10979==    at 0x401D4B0: malloc (vg_replace_malloc.c:149)
# ==10979==    by 0x4006B83: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x400A1F6: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x400B44E: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x400A3CA: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x46344D4: (within /lib/tls/i686/cmov/libc-2.3.6.so)
# ==10979==    by 0x400B44E: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x4633EDE: _dl_open (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==10979==    by 0x451DD8D: (within /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==10979==    by 0x400B44E: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x451E42C: (within /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==10979==    by 0x451DD20: dlopen (in /lib/tls/i686/cmov/libdl-2.3.6.so)
{
   dlopen
   Memcheck:Addr4
   obj:*ld-2.3.6.so
   obj:*ld-2.3.6.so
   obj:*ld-2.3.6.so
   obj:*ld-2.3.6.so
   obj:*ld-2.3.6.so
   obj:*ld-2.3.6.so
   obj:*tls/i686/cmov/libc-2.3.6.so
   obj:*ld-2.3.6.so
   fun:*dl*open
   obj:*libdl-2.3.6*
   obj:*ld-2.3.6.so
   obj:*libdl-2.3.6*
}

# ==10979== Invalid read of size 4
# ==10979==    at 0x4010C43: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x4006704: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x463446F: (within /lib/tls/i686/cmov/libc-2.3.6.so)
# ==10979==    by 0x400B44E: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x4633EDE: _dl_open (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==10979==    by 0x451DD8D: (within /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==10979==    by 0x400B44E: (within /lib/ld-2.3.6.so)
# ==10979==    by 0x451E42C: (within /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==10979==    by 0x451DD20: dlopen (in /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==10979==    by 0x434A606: g_module_open (gmodule-dl.c:99)
# ==10979==    by 0x4681D3A: e_data_server_module_load (e-data-server-module.c:77)
# ==10979==    by 0x440B367: g_type_module_use (gtypemodule.c:190)
# ==10979==  Address 0x4E7C410 is 112 bytes inside a block of size 114 alloc'd
# ==10979==    at 0x401D4B0: malloc (vg_replace_malloc.c:149)
# ==10979==    by 0x4457A95: g_malloc (gmem.c:131)
# ==10979==    by 0x4470618: g_strdup (gstrfuncs.c:92)
# ==10979==    by 0x434A99B: g_module_open (gmodule.c:386)
# ==10979==    by 0x4681D3A: e_data_server_module_load (e-data-server-module.c:77)
# ==10979==    by 0x440B367: g_type_module_use (gtypemodule.c:190)
# ==10979==    by 0x468207F: e_data_server_module_load_file (e-data-server-module.c:175)
# ==10979==    by 0x4682146: load_module_dir (e-data-server-module.c:202)
# ==10979==    by 0x46821AA: e_data_server_module_init (e-data-server-module.c:219)
# ==10979==    by 0x804B58F: main (server.c:379)
{
   dlopen II
   Memcheck:Addr4
   obj:*ld-2.3.6.so
   obj:*ld-2.3.6.so
   obj:*libc-2.3.6.so
   obj:*ld-2.3.6.so
   fun:*dl*open
   obj:*libdl-2.3.6.so
   obj:*ld-2.3.6.so
   obj:*libdl-2.3.6.so
   fun:dlopen
   fun:g_module_open
}

# ==25878== Conditional jump or move depends on uninitialised value(s)
# ==25878==    at 0x4019A91: index (strchr.S:40)
# ==25878==    by 0x4007DED: expand_dynamic_string_token (dl-load.c:425)
# ==25878==    by 0x4007FA4: fillin_rpath (dl-load.c:495)
# ==25878==    by 0x4008A3D: _dl_init_paths (dl-load.c:872)
# ==25878==    by 0x4002F72: dl_main (rtld.c:1347)
# ==25878==    by 0x4017564: _dl_sysdep_start (dl-sysdep.c:249)
# ==25878==    by 0x4004CF7: _dl_start (rtld.c:332)
# ==25878==    by 0x40012D7: ??? (in /lib/x86_64-linux-gnu/ld-2.19.so)
# ==25878==    by 0x2: ???
# ==25878==    by 0xFFEFFF92A: ???
# ==25878==    by 0xFFEFFF938: ???
# ==25878==    by 0xFFEFFF95B: ???
# ==25878== 
#
# First seen on Ubuntu Trusty after introducing icaltzutil_fetch_timezone()
# in the main executable. Perhaps related? Not tested.
{
   dlstart
   Memcheck:Cond
   fun:index
   fun:expand_dynamic_string_token
   ...
   fun:_dl_start
   obj:*/ld-2.19.so
}

# ==9785== Thread 2:
# ==9785== Invalid free() / delete / delete[]
# ==9785==    at 0x401D0CA: free (vg_replace_malloc.c:233)
# ==9785==    by 0x45987BD: (within /lib/tls/i686/cmov/libc-2.3.6.so)
# ==9785==    by 0x4597F71: __libc_freeres (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==9785==    by 0x40191F6: _vgnU_freeres (vg_preloaded.c:60)
# ==9785==    by 0x454E8F2: poll (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==9785==    by 0x42C3EB8: g_main_context_iterate (gmain.c:2945)
# ==9785==    by 0x42C4246: g_main_loop_run (gmain.c:2844)
# ==9785==    by 0x413E691: startup_mainloop (e-book.c:3773)
# ==9785==    by 0x42E877E: g_thread_create_proxy (gthread.c:635)
# ==9785==    by 0x435A23F: start_thread (in /lib/tls/i686/cmov/libpthread-2.3.6.so)
# ==9785==    by 0x455849D: clone (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==9785==  Address 0x45E3098 is not stack'd, malloc'd or (recently) free'd
#
# ==11515== Invalid free() / delete / delete[]
# ==11515==    at 0x401D0CA: free (vg_replace_malloc.c:233)
# ==11515==    by 0x45987BD: (within /lib/tls/i686/cmov/libc-2.3.6.so)
# ==11515==    by 0x4597F71: __libc_freeres (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==11515==    by 0x40191F6: _vgnU_freeres (vg_preloaded.c:60)
# ==11515==    by 0x451AE03: _Exit (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==11515==    by 0x44A1EAF: (below main) (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==11515==  Address 0x45E3098 is not stack'd, malloc'd or (recently) free'd
{
   invalid free in libc_freeres
   Memcheck:Free
   fun:free
   obj:/lib/tls/i686/cmov/libc-2.3.6.so
   fun:__libc_freeres
   fun:_vgnU_freeres
}

# ==9770== Invalid read of size 4
# ==9770==    at 0x4010E17: (within /lib/ld-2.3.6.so)
# ==9770==    by 0x400B729: (within /lib/ld-2.3.6.so)
# ==9770==    by 0x4008202: (within /lib/ld-2.3.6.so)
# ==9770==    by 0x46358CC: (within /lib/tls/i686/cmov/libc-2.3.6.so)
# ==9770==    by 0x4635A09: _dl_sym (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==9770==    by 0x451CEE7: (within /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==9770==    by 0x400B44E: (within /lib/ld-2.3.6.so)
# ==9770==    by 0x451D42C: (within /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==9770==    by 0x451CE7A: dlsym (in /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==9770==    by 0x434A1E3: g_module_symbol (gmodule-dl.c:147)
# ==9770==    by 0x434A6F1: g_module_open (gmodule.c:484)
# ==9770==    by 0x4680A0B: e_data_server_module_load (e-data-server-module.c:77)
# ==9770==    by 0x4409DB7: g_type_module_use (gtypemodule.c:190)
# ==9770==    by 0x4680D50: e_data_server_module_load_file (e-data-server-module.c:175)
# ==9770==    by 0x4680E17: load_module_dir (e-data-server-module.c:202)
# ==9770==    by 0x4680E7B: e_data_server_module_init (e-data-server-module.c:219)
# ==9770==    by 0x804B5BF: main (server.c:379)
# ==9770==  Address 0x4E48A24 is 124 bytes inside a block of size 125 alloc'd
# ==9770==    at 0x401D4B0: malloc (vg_replace_malloc.c:149)
# ==9770==    by 0x4005DA5: (within /lib/ld-2.3.6.so)
# ==9770==    by 0x4006704: (within /lib/ld-2.3.6.so)
# ==9770==    by 0x463346F: (within /lib/tls/i686/cmov/libc-2.3.6.so)
# ==9770==    by 0x400B44E: (within /lib/ld-2.3.6.so)
# ==9770==    by 0x4632EDE: _dl_open (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==9770==    by 0x451CD8D: (within /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==9770==    by 0x400B44E: (within /lib/ld-2.3.6.so)
# ==9770==    by 0x451D42C: (within /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==9770==    by 0x451CD20: dlopen (in /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==9770==    by 0x434A606: g_module_open (gmodule-dl.c:99)
# ==9770==    by 0x4680A0B: e_data_server_module_load (e-data-server-module.c:77)
# ==9770==    by 0x4409DB7: g_type_module_use (gtypemodule.c:190)
# ==9770==    by 0x4680D50: e_data_server_module_load_file (e-data-server-module.c:175)
# ==9770==    by 0x4680E17: load_module_dir (e-data-server-module.c:202)
# ==9770==    by 0x4680E7B: e_data_server_module_init (e-data-server-module.c:219)
# ==9770==    by 0x804B5BF: main (server.c:379)
{
   dl_sym
   Memcheck:Addr4
   obj:/lib/ld-2.3.6.so
   obj:/lib/ld-2.3.6.so
   obj:/lib/ld-2.3.6.so
   obj:/lib/*libc-*.so
   fun:_dl_sym
}

# ==9770==    at 0x4010DD3: (within /lib/ld-2.3.6.so)
# ==9770==    by 0x4004B78: (within /lib/ld-2.3.6.so)
# ==9770==    by 0x4006792: (within /lib/ld-2.3.6.so)
# ==9770==    by 0x463346F: (within /lib/tls/i686/cmov/libc-2.3.6.so)
# ==9770==    by 0x400B44E: (within /lib/ld-2.3.6.so)
# ==9770==    by 0x4632EDE: _dl_open (in /lib/tls/i686/cmov/libc-2.3.6.so)
# ==9770==    by 0x451CD8D: (within /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==9770==    by 0x400B44E: (within /lib/ld-2.3.6.so)
# ==9770==    by 0x451D42C: (within /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==9770==    by 0x451CD20: dlopen (in /lib/tls/i686/cmov/libdl-2.3.6.so)
# ==9770==    by 0x434A606: g_module_open (gmodule-dl.c:99)
# ==9770==    by 0x4680A0B: e_data_server_module_load (e-data-server-module.c:77)
# ==9770==    by 0x4409DB7: g_type_module_use (gtypemodule.c:190)
# ==9770==    by 0x4680D50: e_data_server_module_load_file (e-data-server-module.c:175)
# ==9770==    by 0x4680E17: load_module_dir (e-data-server-module.c:202)
# ==9770==    by 0x4680E7B: e_data_server_module_init (e-data-server-module.c:219)
# ==9770==    by 0x804B5BF: main (server.c:379)
# ==9770==  Address 0x4E69920 is 128 bytes inside a block of size 130 alloc'd
# ==9770==    at 0x401D4B0: malloc (vg_replace_malloc.c:149)
# ==9770==    by 0x4456A1C: g_malloc (gmem.c:131)
# ==9770==    by 0x446F378: g_strdup (gstrfuncs.c:92)
# ==9770==    by 0x434A99B: g_module_open (gmodule.c:386)
# ==9770==    by 0x4680A0B: e_data_server_module_load (e-data-server-module.c:77)
# ==9770==    by 0x4409DB7: g_type_module_use (gtypemodule.c:190)
# ==9770==    by 0x4680D50: e_data_server_module_load_file (e-data-server-module.c:175)
# ==9770==    by 0x4680E17: load_module_dir (e-data-server-module.c:202)
# ==9770==    by 0x4680E7B: e_data_server_module_init (e-data-server-module.c:219)
# ==9770==    by 0x804B5BF: main (server.c:379)
{
   dl_open
   Memcheck:Addr4
   obj:/lib/ld-2.3.6.so
   obj:/lib/ld-2.3.6.so
   obj:/lib/ld-2.3.6.so
   obj:/lib/*libc-*.so
   obj:/lib/ld-*.so
   fun:_dl_open
}

# ==19340== 
# ==19340== 16 bytes in 1 blocks are definitely lost in loss record 5 of 168
# ==19340==    at 0x4C223DC: calloc (vg_replace_malloc.c:397)
# ==19340==    by 0x64EBE12: g_malloc0 (in /usr/lib/libglib-2.0.so.0.1600.6)
# ==19340==    by 0x64E58F9: g_main_loop_new (in /usr/lib/libglib-2.0.so.0.1600.6)
# ==19340==    by 0x4E3FDC4: startup_mainloop (e-book.c:3772)
# ==19340==    by 0x650A233: (within /usr/lib/libglib-2.0.so.0.1600.6)
# ==19340==    by 0x57433F6: start_thread (in /lib/libpthread-2.7.so)
# ==19340==    by 0x742DB3C: clone (in /lib/libc-2.7.so)
{
   g_main_loop_new
   Memcheck:Leak
   fun:calloc
   fun:g_malloc0
   fun:g_main_loop_new
   fun:startup_mainloop
   obj:libglib-2.0.so*
   fun:start_thread
}

# ==19340== 
# ==19340== 
# ==19340== 292 (52 direct, 240 indirect) bytes in 1 blocks are definitely lost in loss record 83 of 168
# ==19340==    at 0x4C232CB: malloc (vg_replace_malloc.c:207)
# ==19340==    by 0x743E250: nss_parse_service_list (in /lib/libc-2.7.so)
# ==19340==    by 0x743EB0E: __nss_database_lookup (in /lib/libc-2.7.so)
# ==19340==    by 0xEDB642F: ???
# ==19340==    by 0xEDB7968: ???
# ==19340==    by 0x73F2A40: getpwnam_r@@GLIBC_2.2.5 (in /lib/libc-2.7.so)
# ==19340==    by 0x6513F1F: (within /usr/lib/libglib-2.0.so.0.1600.6)
# ==19340==    by 0x651546D: g_get_user_name (in /usr/lib/libglib-2.0.so.0.1600.6)
# ==19340==    by 0x89AAF04: gconf_get_daemon_dir (in /usr/lib/libgconf-2.so.4.1.5)
# ==19340==    by 0x89ACF20: gconf_activate_server (in /usr/lib/libgconf-2.so.4.1.5)
# ==19340==    by 0x89B80B3: (within /usr/lib/libgconf-2.so.4.1.5)
# ==19340==    by 0x89B8C0D: (within /usr/lib/libgconf-2.so.4.1.5)
# ==19340==    by 0x89B9B68: gconf_engine_get_default (in /usr/lib/libgconf-2.so.4.1.5)
# ==19340==    by 0x89C1777: gconf_client_get_default (in /usr/lib/libgconf-2.so.4.1.5)
# ==19340==    by 0x4E416ED: e_book_get_addressbooks (e-book.c:3761)
# ==19340==    by 0x6AFE42: EvolutionContactSource::open() (EvolutionContactSource.cpp:124)
# ==19340==    by 0x52A577: TestEvolutionSyncSource::beginSync(SyncMode) (client-test-app.cpp:68)
# ==19340==    by 0x5CF2DA: LocalTests::testIterateTwice() (ClientTest.cpp:610)
# ==19340==    by 0x60CCE1: CppUnit::TestCaller<LocalTests>::runTest() (TestCaller.h:166)
# ==19340==    by 0x6795846: CppUnit::TestCaseMethodFunctor::operator()() const (in /usr/lib/libcppunit-1.12.so.0.0.0)
# ==19340==    by 0x6787C43: CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.0.0.0)
# ==19340==    by 0x6791758: CppUnit::ProtectorChain::ProtectFunctor::operator()() const (in /usr/lib/libcppunit-1.12.so.0.0.0)
# ==19340==    by 0x679149B: CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.0.0.0)
# ==19340==    by 0x679D23F: CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::string const&) (in /usr/lib/libcppunit-1.12.so.0.0.0)
# ==19340==    by 0x67954DC: CppUnit::TestCase::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.0.0.0)
# ==19340==    by 0x6795E3B: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.0.0.0)
# ==19340==    by 0x6795D65: CppUnit::TestComposite::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.0.0.0)
# ==19340==    by 0x6795E3B: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.0.0.0)
# ==19340==    by 0x6795D65: CppUnit::TestComposite::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.0.0.0)
# ==19340==    by 0x679CFC9: CppUnit::TestResult::runTest(CppUnit::Test*) (in /usr/lib/libcppunit-1.12.so.0.0.0)
{
   pwnam_r II
   Memcheck:Leak
   fun:malloc
   fun:nss_parse_service_list
   fun:__nss_database_lookup
   obj:*
   obj:*
   fun:getpwnam_r*
}

# ==24097== 348 (60 direct, 288 indirect) bytes in 1 blocks are definitely lost in loss record 1,582 of 1,743
# ==24097==    at 0x4C27673: malloc (vg_replace_malloc.c:263)
# ==24097==    by 0x8F2E3FC: nss_parse_service_list (nsswitch.c:626)
# ==24097==    by 0x8F2EBD1: __nss_database_lookup (nsswitch.c:167)
# ==24097==    by 0xEBF88D8: ???
# ==24097==    by 0x8EEC0A1: internal_getgrouplist (initgroups.c:101)
# ==24097==    by 0x8EEC383: getgrouplist (initgroups.c:153)
# ==24097==    by 0x8070442: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x80735FE: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x807388A: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x8073916: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x8073AD8: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x8073BA5: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x804E188: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x804D260: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x804D78D: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x804EC09: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x8068188: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x8068E62: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x80696E8: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x806858C: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x80534D4: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x80535F1: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x80539FF: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x8053BB1: dbus_connection_send_with_reply (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x72AD43: GDBusCXX::DBusClientCall<boost::function<void ()(std::string const&, GDBusCXX::DBusArray<unsigned char> const&, std::string const&)> >::send(GDBusCXX::DBusMessagePtr&, boost::function<void ()(std::string const&, GDBusCXX::DBusArray<unsigned char> const&, std::string const&)> const&) (gdbus-cxx-bridge.h:3933)
# ==24097==    by 0x723ED0: SyncEvo::LocalTransportAgent::onChildConnect(GDBusCXX::DBusConnectionPtr const&) (gdbus-cxx-bridge.h:4040)
# ==24097==    by 0x7400DA: boost::signals2::detail::signal1_impl<void, GDBusCXX::DBusConnectionPtr const&, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void ()(GDBusCXX::DBusConnectionPtr const&)>, boost::function<void ()(boost::signals2::connection const&, GDBusCXX::DBusConnectionPtr const&)>, boost::signals2::mutex>::operator()(GDBusCXX::DBusConnectionPtr const&) (function_template.hpp:1013)
# ==24097==    by 0x73ADDC: SyncEvo::ForkExecParent::newClientConnection(GDBusCXX::DBusConnectionPtr&) (signal_template.hpp:692)
# ==24097==    by 0x5B8E42: GDBusCXX::DBusServerCXX::newConnection(DBusServer*, DBusConnection*, void*) (function_template.hpp:1013)
# ==24097==    by 0x806469A: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097== 
{
   nss_parse_service_list + grouplist
   Memcheck:Leak
   fun:malloc
   fun:nss_parse_service_list
   fun:__nss_database_lookup
   obj:*
   ...
   fun:getgrouplist
}

# ==19927== 1,018,472 (864,248 direct, 154,224 indirect) bytes in 32,959 blocks are definitely lost in loss record 35 of 38
# ==19927==    at 0x4C223DC: calloc (vg_replace_malloc.c:397)
# ==19927==    by 0x64EBE12: g_malloc0 (in /usr/lib/libglib-2.0.so.0.1600.6)
# ==19927==    by 0x84F7066: ORBit_alloc_by_tc (in /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x84F6BEB: CORBA_exception_set_system (in /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x85039A4: (within /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x8504AFC: ORBit_handle_request (in /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x84F003D: giop_connection_handle_input (in /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x850B41F: (within /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x64E4383: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.1600.6)
# ==19927==    by 0x64E7694: (within /usr/lib/libglib-2.0.so.0.1600.6)
# ==19927==    by 0x64E79B4: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.1600.6)
# ==19927==    by 0x8509B7F: (within /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x650A233: (within /usr/lib/libglib-2.0.so.0.1600.6)
# ==19927==    by 0x57433F6: start_thread (in /lib/libpthread-2.7.so)
# ==19927==    by 0x742DB3C: clone (in /lib/libc-2.7.so)
{
   ORBit_handle_request + exception
   Memcheck:Leak
   fun:calloc
   fun:g_malloc0
   fun:ORBit_alloc_by_tc
   fun:CORBA_exception_set_system
   obj:*
   fun:ORBit_handle_request
   fun:giop_connection_handle_input
   obj:*
   fun:g_main_context_dispatch
   obj:*
   fun:g_main_loop_run
}

# ==19927== 1,555,553 (1,359,577 direct, 195,976 indirect) bytes in 33,623 blocks are definitely lost in loss record 36 of 38
# ==19927==    at 0x4C232CB: malloc (vg_replace_malloc.c:207)
# ==19927==    by 0x64EBE6B: g_malloc (in /usr/lib/libglib-2.0.so.0.1600.6)
# ==19927==    by 0x84F72FC: ORBit_alloc_string (in /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x84F700D: CORBA_string_dup (in /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x84F6B67: CORBA_exception_set (in /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x85039A4: (within /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x8504AFC: ORBit_handle_request (in /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x84F003D: giop_connection_handle_input (in /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x850B41F: (within /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x64E4383: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.1600.6)
# ==19927==    by 0x64E7694: (within /usr/lib/libglib-2.0.so.0.1600.6)
# ==19927==    by 0x64E79B4: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.1600.6)
# ==19927==    by 0x8509B7F: (within /usr/lib/libORBit-2.so.0.1.0)
# ==19927==    by 0x650A233: (within /usr/lib/libglib-2.0.so.0.1600.6)
# ==19927==    by 0x57433F6: start_thread (in /lib/libpthread-2.7.so)
# ==19927==    by 0x742DB3C: clone (in /lib/libc-2.7.so)
{
   ORBit_handle_request + exception II
   Memcheck:Leak
   fun:malloc
   fun:g_malloc
   fun:ORBit_alloc_string
   fun:CORBA_string_dup
   fun:CORBA_exception_set
   obj:*
   fun:ORBit_handle_request
   fun:giop_connection_handle_input
   obj:*
   fun:g_main_context_dispatch
   obj:*
   fun:g_main_loop_run
}

# TODO: fix issue in libsynthesis/SyncML TK (BMC #8936)
# ==25141== Invalid read of size 1
# ==25141==    at 0x7AB318: show_decode_error (xltdec.c:129)
# ==25141==    by 0x7AE9B9: xltDecWbxmlInit (xltdecwbxml.c:472)
# ==25141==    by 0x7AEB9B: subdtdDecodeWbxml (xltdecwbxml.c:993)
# ==25141==    by 0x7ABFFE: buildItem (xltdec.c:2026)
# ==25141==    by 0x7AC81C: appendItemList (xltdec.c:2500)
# ==25141==    by 0x7AD958: buildGenericCmd (xltdec.c:1216)
# ==25141==    by 0x7AE1CC: xltDecNext (xltdec.c:523)
# ==25141==    by 0x7A8B07: smlProcessData (mgrcmddispatcher.c:303)
# ==25141==    by 0x783B6A: sysync::TSyncAgent::ClientProcessingStep(unsigned short&, sysync::TEngineProgressType*) (syncagent.cpp:3453)
# ==25141==    by 0x787968: sysync::TSyncAgent::ClientSessionStep(unsigned short&, sysync::TEngineProgressType*) (syncagent.cpp:3321)
# ==25141==    by 0x789D1D: sysync::TSyncAgent::SessionStep(unsigned short&, sysync::TEngineProgressType*) (syncagent.cpp:2925)
# ==25141==    by 0x6A05DC: SyncEvo::SharedEngine::SessionStep(boost::shared_ptr<sysync::SessionType> const&, unsigned short&, sysync::TEngineProgressType*) (SynthesisEngine.cpp:96)
# ==25141==    by 0x62FAC7: SyncEvo::SyncContext::doSync() (SyncContext.cpp:3252)
# ==25141==    by 0x63BAD9: SyncEvo::SyncContext::sync(SyncEvo::SyncReport*) (SyncContext.cpp:2774)
# ==25141==    by 0x4C640D: SyncEvo::TestEvolution::doSync(int const*, std::string const&, SyncEvo::SyncOptions const&) (client-test-app.cpp:398)
# ==25141==    by 0x4E96F7: SyncEvo::SyncTests::doSync(SyncEvo::SyncOptions const&) (ClientTest.cpp:3264)
# ==25141==    by 0x580EA1: SyncEvo::SyncTests::doSync(char const*, SyncEvo::SyncOptions const&) (ClientTest.h:782)
# ==25141==    by 0x4DA7BF: SyncEvo::SyncTests::deleteAll(SyncEvo::SyncTests::DeleteAllMode) (ClientTest.cpp:1636)
# ==25141==    by 0x4E45FF: SyncEvo::SyncTests::doCopy() (ClientTest.cpp:1664)
# ==25141==    by 0x57B17C: SyncEvo::SyncTests::testCopy() (ClientTest.h:680)
# ==25141==    by 0x595B406: CppUnit::TestCaseMethodFunctor::operator()() const (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x594D7D3: CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x5957278: CppUnit::ProtectorChain::ProtectFunctor::operator()() const (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x5956FBB: CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x5962D9F: CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::string const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x595B09C: CppUnit::TestCase::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x595B9FB: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x595B925: CppUnit::TestComposite::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x595B9FB: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x595B925: CppUnit::TestComposite::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==  Address 0xe580fcf is 0 bytes after a block of size 31 alloc'd
# ==25141==    at 0x4C244E8: malloc (vg_replace_malloc.c:236)
# ==25141==    by 0x7AEB11: subdtdDecodeWbxml (xltdecwbxml.c:970)
# ==25141==    by 0x7ABFFE: buildItem (xltdec.c:2026)
# ==25141==    by 0x7AC81C: appendItemList (xltdec.c:2500)
# ==25141==    by 0x7AD958: buildGenericCmd (xltdec.c:1216)
# ==25141==    by 0x7AE1CC: xltDecNext (xltdec.c:523)
# ==25141==    by 0x7A8B07: smlProcessData (mgrcmddispatcher.c:303)
# ==25141==    by 0x783B6A: sysync::TSyncAgent::ClientProcessingStep(unsigned short&, sysync::TEngineProgressType*) (syncagent.cpp:3453)
# ==25141==    by 0x787968: sysync::TSyncAgent::ClientSessionStep(unsigned short&, sysync::TEngineProgressType*) (syncagent.cpp:3321)
# ==25141==    by 0x789D1D: sysync::TSyncAgent::SessionStep(unsigned short&, sysync::TEngineProgressType*) (syncagent.cpp:2925)
# ==25141==    by 0x6A05DC: SyncEvo::SharedEngine::SessionStep(boost::shared_ptr<sysync::SessionType> const&, unsigned short&, sysync::TEngineProgressType*) (SynthesisEngine.cpp:96)
# ==25141==    by 0x62FAC7: SyncEvo::SyncContext::doSync() (SyncContext.cpp:3252)
# ==25141==    by 0x63BAD9: SyncEvo::SyncContext::sync(SyncEvo::SyncReport*) (SyncContext.cpp:2774)
# ==25141==    by 0x4C640D: SyncEvo::TestEvolution::doSync(int const*, std::string const&, SyncEvo::SyncOptions const&) (client-test-app.cpp:398)
# ==25141==    by 0x4E96F7: SyncEvo::SyncTests::doSync(SyncEvo::SyncOptions const&) (ClientTest.cpp:3264)
# ==25141==    by 0x580EA1: SyncEvo::SyncTests::doSync(char const*, SyncEvo::SyncOptions const&) (ClientTest.h:782)
# ==25141==    by 0x4DA7BF: SyncEvo::SyncTests::deleteAll(SyncEvo::SyncTests::DeleteAllMode) (ClientTest.cpp:1636)
# ==25141==    by 0x4E45FF: SyncEvo::SyncTests::doCopy() (ClientTest.cpp:1664)
# ==25141==    by 0x57B17C: SyncEvo::SyncTests::testCopy() (ClientTest.h:680)
# ==25141==    by 0x595B406: CppUnit::TestCaseMethodFunctor::operator()() const (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x594D7D3: CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x5957278: CppUnit::ProtectorChain::ProtectFunctor::operator()() const (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x5956FBB: CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x5962D9F: CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::string const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x595B09C: CppUnit::TestCase::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x595B9FB: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x595B925: CppUnit::TestComposite::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x595B9FB: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x595B925: CppUnit::TestComposite::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==25141==    by 0x5962B29: CppUnit::TestResult::runTest(CppUnit::Test*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
{
    SyncML Toolkit buffer overrun
    Memcheck:Addr1
    fun:show_decode_error
    ...
    fun:smlProcessData
}

# ==19808== Invalid read of size 4
# ==19808==    at 0x106E4E9A: asn1_der_coding (in /usr/lib/x86_64-linux-gnu/libtasn1.so.3.1.11)
# ==19808==    by 0xD37A2F8: ??? (in /usr/lib/libgnutls.so.26.16.14)
# ==19808==    by 0xD35D754: ??? (in /usr/lib/libgnutls.so.26.16.14)
# ==19808==    by 0xD35D995: ??? (in /usr/lib/libgnutls.so.26.16.14)
# ==19808==    by 0xD360442: ??? (in /usr/lib/libgnutls.so.26.16.14)
# ==19808==    by 0xD3537EC: ??? (in /usr/lib/libgnutls.so.26.16.14)
# ==19808==    by 0xD3505DF: ??? (in /usr/lib/libgnutls.so.26.16.14)
# ==19808==    by 0xD3506D4: gnutls_handshake (in /usr/lib/libgnutls.so.26.16.14)
# ==19808==    by 0x1473F1A8: ??? (in /usr/lib/gio/modules/libgiognutls.so)
# ==19808==    by 0x14740D22: ??? (in /usr/lib/gio/modules/libgiognutls.so)
# ==19808==    by 0x5B9C6F0: soup_socket_write (in /usr/lib/libsoup-2.4.so.1.4.0)
# ==19808==    by 0x5B8BEDA: ??? (in /usr/lib/libsoup-2.4.so.1.4.0)
# ==19808==    by 0x5B8C81D: ??? (in /usr/lib/libsoup-2.4.so.1.4.0)
# ==19808==    by 0x6762E7D: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.2800.6)
# ==19808==    by 0x67748D6: ??? (in /usr/lib/libgobject-2.0.so.0.2800.6)
# ==19808==    by 0x677DD04: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.2800.6)
# ==19808==    by 0x677DED2: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.2800.6)
# ==19808==    by 0x5B9A1AD: ??? (in /usr/lib/libsoup-2.4.so.1.4.0)
# ==19808==    by 0x1473EC0F: ??? (in /usr/lib/gio/modules/libgiognutls.so)
# ==19808==    by 0x6DF64A2: g_main_context_dispatch (in /lib/libglib-2.0.so.0.2800.6)
# ==19808==    by 0x6DF6C7F: ??? (in /lib/libglib-2.0.so.0.2800.6)
# ==19808==    by 0x6DF72F1: g_main_loop_run (in /lib/libglib-2.0.so.0.2800.6)
# ==19808==    by 0x7240A8: SyncEvo::SoupTransportAgent::wait(bool) (SoupTransportAgent.cpp:177)
# ==19808==    by 0x6B6E51: SyncEvo::SyncContext::doSync() (SyncContext.cpp:3597)
# ==19808==    by 0x6BD0B4: SyncEvo::SyncContext::sync(SyncEvo::SyncReport*) (SyncContext.cpp:2904)
# ==19808==    by 0x4F6521: SyncEvo::TestEvolution::doSync(int const*, std::string const&, SyncEvo::SyncOptions const&) (client-test-app.cpp:472)
# ==19808==    by 0x511D6B: SyncEvo::SyncTests::doSync(SyncEvo::SyncOptions const&) (ClientTest.cpp:3959)
# ==19808==    by 0x5C0BDF: SyncEvo::SyncTests::testTwoWaySync() (ClientTest.h:688)
# ==19808==    by 0x610F749: CppUnit::TestCaseMethodFunctor::operator()() const (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==19808==    by 0x6102C83: CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==19808==  Address 0x10fbcaf4 is 20 bytes inside a block of size 22 alloc'd
# ==19808==    at 0x4C2779D: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
# ==19808==    by 0x106E4E7B: asn1_der_coding (in /usr/lib/x86_64-linux-gnu/libtasn1.so.3.1.11)
# ==19808==    by 0xD37A2F8: ??? (in /usr/lib/libgnutls.so.26.16.14)
# ==19808==    by 0xD35D754: ??? (in /usr/lib/libgnutls.so.26.16.14)
# ==19808==    by 0xD35D995: ??? (in /usr/lib/libgnutls.so.26.16.14)
# ==19808==    by 0xD360442: ??? (in /usr/lib/libgnutls.so.26.16.14)
# ==19808==    by 0xD3537EC: ??? (in /usr/lib/libgnutls.so.26.16.14)
# ==19808==    by 0xD3505DF: ??? (in /usr/lib/libgnutls.so.26.16.14)
# ==19808==    by 0xD3506D4: gnutls_handshake (in /usr/lib/libgnutls.so.26.16.14)
# ==19808==    by 0x1473F1A8: ??? (in /usr/lib/gio/modules/libgiognutls.so)
# ==19808==    by 0x14740D22: ??? (in /usr/lib/gio/modules/libgiognutls.so)
# ==19808==    by 0x5B9C6F0: soup_socket_write (in /usr/lib/libsoup-2.4.so.1.4.0)
# ==19808==    by 0x5B8BEDA: ??? (in /usr/lib/libsoup-2.4.so.1.4.0)
# ==19808==    by 0x5B8C81D: ??? (in /usr/lib/libsoup-2.4.so.1.4.0)
# ==19808==    by 0x6762E7D: g_closure_invoke (in /usr/lib/libgobject-2.0.so.0.2800.6)
# ==19808==    by 0x67748D6: ??? (in /usr/lib/libgobject-2.0.so.0.2800.6)
# ==19808==    by 0x677DD04: g_signal_emit_valist (in /usr/lib/libgobject-2.0.so.0.2800.6)
# ==19808==    by 0x677DED2: g_signal_emit (in /usr/lib/libgobject-2.0.so.0.2800.6)
# ==19808==    by 0x5B9A1AD: ??? (in /usr/lib/libsoup-2.4.so.1.4.0)
# ==19808==    by 0x1473EC0F: ??? (in /usr/lib/gio/modules/libgiognutls.so)
# ==19808==    by 0x6DF64A2: g_main_context_dispatch (in /lib/libglib-2.0.so.0.2800.6)
# ==19808==    by 0x6DF6C7F: ??? (in /lib/libglib-2.0.so.0.2800.6)
# ==19808==    by 0x6DF72F1: g_main_loop_run (in /lib/libglib-2.0.so.0.2800.6)
# ==19808==    by 0x7240A8: SyncEvo::SoupTransportAgent::wait(bool) (SoupTransportAgent.cpp:177)
# ==19808==    by 0x6B6E51: SyncEvo::SyncContext::doSync() (SyncContext.cpp:3597)
# ==19808==    by 0x6BD0B4: SyncEvo::SyncContext::sync(SyncEvo::SyncReport*) (SyncContext.cpp:2904)
# ==19808==    by 0x4F6521: SyncEvo::TestEvolution::doSync(int const*, std::string const&, SyncEvo::SyncOptions const&) (client-test-app.cpp:472)
# ==19808==    by 0x511D6B: SyncEvo::SyncTests::doSync(SyncEvo::SyncOptions const&) (ClientTest.cpp:3959)
# ==19808==    by 0x5C0BDF: SyncEvo::SyncTests::testTwoWaySync() (ClientTest.h:688)
# ==19808==    by 0x610F749: CppUnit::TestCaseMethodFunctor::operator()() const (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==19808== 
{
   glib-networking 2.28.7 + gnutls 2.10.5-3 + Google: ASN buffer
   Memcheck:Addr4
   fun:asn1_der_coding
   ...
   obj:*libgiognutls.so
}
{
   gnutls + libneon: ASN buffer
   Memcheck:Addr4
   fun:asn1_der_coding
   ...
   obj:*libneon*
}
{
   gnutls certificate: ASN buffer
   Memcheck:Addr4
   fun:asn1_der_coding
   ...
   fun:gnutls_certificate_set_x509_trust_file
}

# ==24318== Syscall param sendmsg(mmsg[0].msg_hdr) points to uninitialised byte(s)
# ==24318==    at 0xA352FFB: sendmmsg (sendmmsg.c:36)
# ==24318==    by 0x113B12DE: __libc_res_nsend (res_send.c:1140)
# ==24318==    by 0x113AEB8B: __libc_res_nquery (res_query.c:226)
# ==24318==    by 0x113AF147: __libc_res_nquerydomain (res_query.c:582)
# ==24318==    by 0x113AF74E: __libc_res_nsearch (res_query.c:378)
# ==24318==    by 0x1C5F6A55: _nss_dns_gethostbyname4_r (dns-host.c:314)
# ==24318==    by 0xA32CEF1: gaih_inet (getaddrinfo.c:849)
# ==24318==    by 0xA3302D3: getaddrinfo (getaddrinfo.c:2473)
# ==24318==    by 0x7E61812: do_lookup_by_name (gthreadedresolver.c:81)
# ==24318==    by 0x7E5F044: g_task_thread_pool_thread (gtask.c:1242)
# ==24318==    by 0x8600B95: g_thread_pool_thread_proxy (gthreadpool.c:309)
# ==24318==    by 0x86001D4: g_thread_proxy (gthread.c:798)
# ==24318==    by 0x983DE0D: start_thread (pthread_create.c:311)
# ==24318==    by 0xA3519EC: clone (clone.S:113)
# ==24318==  Address 0x1c3e3ef0 is on thread 3's stack
# ==24318== 
{
   getaddrinfo + dns
   Memcheck:Param
   sendmsg(mmsg[0].msg_hdr)
   fun:sendmmsg
   ...
   fun:getaddrinfo
}
{
   getaddrinfo + dns (with stack unwinding stopping in libc)
   Memcheck:Param
   sendmsg(mmsg[0].msg_hdr)
   fun:sendmmsg
   ...
   fun:__libc_res_nquerydomain
}

# ==25419== 21 bytes in 1 blocks are definitely lost in loss record 157 of 649
# ==25419==    at 0x4C27673: malloc (vg_replace_malloc.c:263)
# ==25419==    by 0xA182881: strdup (strdup.c:43)
# ==25419==    by 0x132A2D5A: p11_kit_registered_module_to_name (in /usr/lib/x86_64-linux-gnu/libp11-kit.so.0.0.0)
# ==25419==    by 0xE815504: gnutls_pkcs11_init (in /usr/lib/x86_64-linux-gnu/libgnutls.so.26.21.9)
# ==25419==    by 0xE7FEFF1: gnutls_global_init (in /usr/lib/x86_64-linux-gnu/libgnutls.so.26.21.9)
# ==25419==    by 0x594C66A: ne_sock_init (in /usr/lib/libneon-gnutls.so.27.2.6)
# ==25419==    by 0x581D48: SyncEvo::Neon::Session::Session(boost::shared_ptr<SyncEvo::Neon::Settings> const&) (NeonCXX.cpp:202)
# ==25419==    by 0x5825E3: SyncEvo::Neon::Session::create(boost::shared_ptr<SyncEvo::Neon::Settings> const&) (NeonCXX.cpp:279)
# ==25419==    by 0x5728CF: SyncEvo::WebDAVSource::contactServer() (WebDAVSource.cpp:340)
# ==25419==    by 0x565B50: SyncEvo::WebDAVSource::beginSync(std::string const&, std::string const&) (WebDAVSource.h:81)
# ==25419==    by 0x5BED1A: SyncEvo::SyncSourceSession::startDataRead(char const*, char const*) (SyncSource.cpp:498)
# ==25419==    by 0x5D3E29: SyncEvolution_StartDataRead (function_template.hpp:760)
# ==25419==    by 0x717BDC: sysync::TPluginApiDS::apiReadSyncSet(bool) (pluginapids.cpp:1063)
# ==25419==    by 0x73DF44: sysync::TCustomImplDS::makeSyncSetLoaded(bool) (customimplds.cpp:3373)
# ==25419==    by 0x78B106: sysync::TStdLogicDS::dsBeforeStateChange(sysync::TLocalEngineDSState, sysync::TLocalEngineDSState) (stdlogicds.cpp:1520)
# ==25419==    by 0x7525D7: sysync::TLocalEngineDS::changeState(sysync::TLocalEngineDSState, bool) (localengineds.cpp:4182)
# ==25419==    by 0x753B36: sysync::TLocalEngineDS::engInitDSForClientSync() (localengineds.cpp:3586)
# ==25419==    by 0x79237B: sysync::TSyncAgent::NextMessage(bool&) (syncagent.cpp:1186)
# ==25419==    by 0x794CF2: sysync::TSyncAgent::ClientGeneratingStep(unsigned short&, sysync::TEngineProgressType*) (syncagent.cpp:3422)
# ==25419==    by 0x79505C: sysync::TSyncAgent::ClientSessionStep(unsigned short&, sysync::TEngineProgressType*) (syncagent.cpp:3316)
# ==25419==    by 0x7953E4: sysync::TSyncAgent::SessionStep(unsigned short&, sysync::TEngineProgressType*) (syncagent.cpp:2927)
# ==25419==    by 0x65ACBE: SyncEvo::SharedEngine::SessionStep(boost::shared_ptr<sysync::SessionType> const&, unsigned short&, sysync::TEngineProgressType*) (SynthesisEngine.cpp:96)
# ==25419==    by 0x5DDE30: SyncEvo::SyncContext::doSync() (SyncContext.cpp:3549)
# ==25419==    by 0x5E67C9: SyncEvo::SyncContext::sync(SyncEvo::SyncReport*) (SyncContext.cpp:3016)
# ==25419==    by 0x59FDA2: SyncEvo::LocalTransportAgentChild::run() (LocalTransportAgent.cpp:784)
# ==25419==    by 0x598833: SyncEvo::LocalTransportMain(int, char**) (LocalTransportAgent.cpp:973)
# ==25419==    by 0xA121EAC: (below main) (libc-start.c:228)
# ==25419== 
{
   p11-kit + gnutls + libneon
   Memcheck:Leak
   ...
   fun:p11_kit_registered_module_to_name
   ...
   fun:ne_sock_init
}

# ==7816== 24 bytes in 1 blocks are definitely lost in loss record 603 of 1,569
# ==7816==    at 0x4C27673: malloc (vg_replace_malloc.c:263)
# ==7816==    by 0x7B6AC42: g_malloc (in /lib/libglib-2.0.so.0.2800.8)
# ==7816==    by 0xBBB992C: ??? (in /lib/x86_64-linux-gnu/libgcrypt.so.11.7.0)
# ==7816==    by 0xBBBA888: ??? (in /lib/x86_64-linux-gnu/libgcrypt.so.11.7.0)
# ==7816==    by 0xBBBABCE: ??? (in /lib/x86_64-linux-gnu/libgcrypt.so.11.7.0)
# ==7816==    by 0xBC03A09: ??? (in /lib/x86_64-linux-gnu/libgcrypt.so.11.7.0)
# ==7816==    by 0x6F8864A: ??? (in /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0.1.1)
# ==7816==    by 0x6F7D24B: ??? (in /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0.1.1)
# ==7816==    by 0x6F7D4F1: ??? (in /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0.1.1)
# ==7816==    by 0x6F7C6EE: ??? (in /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0.1.1)
# ==7816==    by 0x576EFE: SyncEvo::DBusUserInterface::savePassword(std::string const&, std::string const&, SyncEvo::ConfigPasswordKey const&) (dbus-user-interface.cpp:206)
# ==7816==    by 0x693130: SyncEvo::PasswordConfigProperty::savePassword(SyncEvo::ConfigUserInterface&, std::string const&, SyncEvo::FilterConfigNode&, std::string const&, boost::shared_ptr<SyncEvo::FilterConfigNode> const&) const (SyncConfig.cpp:1711)
# ==7816==    by 0x6A730E: SyncEvo::SyncConfig::preFlush(SyncEvo::ConfigUserInterface&) (SyncConfig.cpp:912)
# ==7816==    by 0x54A689: SyncEvo::Session::setNamedConfig(std::string const&, bool, bool, std::map<std::string, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > > > > const&) (session.cpp:238)
# ==7816==    by 0x55B48D: GDBusCXX::MakeMethodEntry<boost::function<void ()(bool, bool, std::map<std::string, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > >, std::less<std::string>, std::allocator<std::pair<std::string const, std::map<std::string, std::string, std::less<std::string>, std::allocator<std::pair<std::string const, std::string> > > > > > const&)> >::methodFunction(DBusConnection*, DBusMessage*, void*) (function_template.hpp:1013)
# ==7816==    by 0x5866F0: handle_message (object.c:622)
# ==7816==    by 0x7E2C3C0: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==7816==    by 0x7E1E2BF: dbus_connection_dispatch (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==7816==    by 0x588354: queue_dispatch (mainloop.c:91)
# ==7816==    by 0x7B63EDC: g_main_context_dispatch (in /lib/libglib-2.0.so.0.2800.8)
# ==7816==    by 0x7B646B7: ??? (in /lib/libglib-2.0.so.0.2800.8)
# ==7816==    by 0x7B64CF9: g_main_loop_run (in /lib/libglib-2.0.so.0.2800.8)
# ==7816==    by 0x5344EB: SyncEvo::Server::run(SyncEvo::LogRedirect&) (server.cpp:344)
# ==7816==    by 0x515CE3: main (main.cpp:117)
# ==7816== 
#
# Different backtrace starting with the move of GNOME keyring support into a backend.
{
   gcrypt + GNOME keyring + modules
   Memcheck:Leak
   fun:malloc
   fun:g_malloc
   obj:*libgcrypt.so*
   ...
   obj:*libgnome-keyring.so*
   ...
   fun:*GNOME*Password*
}
{
   gcrypt + GNOME keyring + function names
   Memcheck:Leak
   fun:malloc
   ...
   fun:gcry_mpi_snew
   ...
   fun:gnome_keyring_*_network_password*
}

# ==5221== 280 (24 direct, 256 indirect) bytes in 1 blocks are definitely lost in loss record 2,234 of 2,429
# ==5221==    at 0x4C28BED: malloc (vg_replace_malloc.c:263)
# ==5221==    by 0xB37B960: ??? (in /lib/x86_64-linux-gnu/libgcrypt.so.11.7.0)
# ==5221==    by 0xB37C888: ??? (in /lib/x86_64-linux-gnu/libgcrypt.so.11.7.0)
# ==5221==    by 0xB37CBCE: ??? (in /lib/x86_64-linux-gnu/libgcrypt.so.11.7.0)
# ==5221==    by 0xB3C5A09: ??? (in /lib/x86_64-linux-gnu/libgcrypt.so.11.7.0)
# ==5221==    by 0x7EE7AFA: ??? (in /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0.2.0)
# ==5221==    by 0x7EDC0AB: ??? (in /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0.2.0)
# ==5221==    by 0x7EDC2B1: ??? (in /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0.2.0)
# ==5221==    by 0x7EDB743: ??? (in /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0.2.0)
# ==5221==    by 0x5063089: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.7.1)
# ==5221==    by 0x5066152: dbus_connection_dispatch (in /lib/x86_64-linux-gnu/libdbus-1.so.3.7.1)
# ==5221==    by 0x7EE6E44: ??? (in /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0.2.0)
# ==5221==    by 0x5536204: g_main_context_dispatch (gmain.c:2539)
# ==5221==    by 0x5536537: g_main_context_iterate.isra.23 (gmain.c:3146)
# ==5221==    by 0x5536931: g_main_loop_run (gmain.c:3340)
# ==5221==    by 0x4042F6: main (activesyncd-server.c:300)
# ==5221== 
{
   gcrypt + activesyncd
   Memcheck:Leak
   fun:malloc
   obj:*libgcrypt.so*
   ...
   obj:*libgnome-keyring.so*
}

# ==28350== 727 (184 direct, 543 indirect) bytes in 1 blocks are definitely lost in loss record 2,542 of 2,693
# ==28350==    at 0x4C272B8: calloc (vg_replace_malloc.c:566)
# ==28350==    by 0xE6293A5: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.7.2)
# ==28350==    by 0xE62CE0B: dbus_message_new_error (in /lib/x86_64-linux-gnu/libdbus-1.so.3.7.2)
# ==28350==    by 0xE62F8C5: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.7.2)
# ==28350==    by 0xE620DF1: dbus_connection_send_with_reply (in /lib/x86_64-linux-gnu/libdbus-1.so.3.7.2)
# ==28350==    by 0xE621090: dbus_connection_send_with_reply_and_block (in /lib/x86_64-linux-gnu/libdbus-1.so.3.7.2)
# ==28350==    by 0xE61C78B: dbus_bus_register (in /lib/x86_64-linux-gnu/libdbus-1.so.3.7.2)
# ==28350==    by 0xE61CA4E: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.7.2)
# ==28350==    by 0x5974EE6: ??? (in /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0.2.0)
# ==28350==    by 0x5976614: ??? (in /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0.2.0)
# ==28350==    by 0x913B82: SyncEvo::GNOMELoadPasswordSlot(SyncEvo::InitStateTri const&, std::string const&, std::string const&, SyncEvo::ConfigPasswordKey const&, SyncEvo::InitState<std::string>&) (GNOMEPlatform.cpp:85)
# ==28350==    by 0x8EF789: boost::signals2::detail::signal5_impl<bool, SyncEvo::InitStateTri const&, std::string const&, std::string const&, SyncEvo::ConfigPasswordKey const&, SyncEvo::InitState<std::string>&, SyncEvo::TrySlots, int, std::less<int>, boost::function<bool ()(SyncEvo::InitStateTri const&, std::string const&, std::string const&, SyncEvo::ConfigPasswordKey const&, SyncEvo::InitState<std::string>&)>, boost::function<bool ()(boost::signals2::connection const&, SyncEvo::InitStateTri const&, std::string const&, std::string const&, SyncEvo::ConfigPasswordKey const&, SyncEvo::InitState<std::string>&)>, boost::signals2::mutex>::operator()(SyncEvo::InitStateTri const&, std::string const&, std::string const&, SyncEvo::ConfigPasswordKey const&, SyncEvo::InitState<std::string>&) (function_template.hpp:760)
# ==28350==    by 0x8EF9DB: SyncEvo::SimpleUserInterface::askPassword(std::string const&, std::string const&, SyncEvo::ConfigPasswordKey const&) (signal_template.hpp:695)
# ==28350==    by 0xA93370: SyncEvo::PasswordConfigProperty::checkPassword(SyncEvo::UserInterface&, SyncEvo::SyncConfig&, int, SyncEvo::ConfigProperty const&, std::string const&) const (SyncConfig.cpp:2053)
# ==28350==    by 0xA7EBD8: SyncEvo::PasswordConfigProperty::checkPasswords(SyncEvo::UserInterface&, SyncEvo::SyncConfig&, int, std::list<std::string, std::allocator<std::string> > const&) (SyncConfig.cpp:2106)
# ==28350==    by 0x8E768A: SyncEvo::(anonymous namespace)::WebDAVTest::createSource(std::string const&, bool) const (WebDAVSourceRegister.cpp:308)
# ==28350==    by 0x8E8AA3: SyncEvo::(anonymous namespace)::WebDAVTestSingleton::WebDAVList::push_back(boost::shared_ptr<SyncEvo::(anonymous namespace)::WebDAVTest> const&) (WebDAVSourceRegister.cpp:382)
# ==28350==    by 0x8E9CB5: SyncEvo::(anonymous namespace)::WebDAVTestSingleton::init() const (WebDAVSourceRegister.cpp:451)
# ==28350==    by 0x6F5364: SyncEvo::TestEvolution::init() (client-test-app.cpp:147)
# ==28350==    by 0x6F8618: SyncEvo::TestEvolution::getNumLocalSources() (client-test-app.cpp:277)
# ==28350==    by 0x8B3DC5: SyncEvo::ClientTestFactory::makeTest() (ClientTest.cpp:6019)
# ==28350==    by 0x75470E1: CppUnit::TestFactoryRegistry::addTestToSuite(CppUnit::TestSuite*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==28350==    by 0x7547158: CppUnit::TestFactoryRegistry::makeTest() (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==28350==    by 0x6E6DB1: main (client-test-main.cpp:303)
# ==28350== 
{
   keyring + D-Bus error
   Memcheck:Leak
   fun:calloc
   obj:*/libdbus*
   fun:dbus_message_new_error
   ...
   obj:*/libgnome-keyring.so*
   fun:*GNOME*PasswordSlot*
}

# ==10804== 363 (120 direct, 243 indirect) bytes in 3 blocks are definitely lost in loss record 1,844 of 2,014
# ==10804==    at 0x4C27673: malloc (vg_replace_malloc.c:263)
# ==10804==    by 0x7FABC02: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==10804==    by 0x7FC0976: g_slice_alloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==10804==    by 0x7FDEEC9: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==10804==    by 0x7FDF02C: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==10804==    by 0x7FDC825: g_variant_builder_end (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==10804==    by 0x7672049: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3000.2)
# ==10804==    by 0x76736ED: g_dbus_message_new_from_blob (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3000.2)
# ==10804==    by 0x767F01D: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3000.2)
# ==10804==    by 0x7625D86: g_simple_async_result_complete (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3000.2)
# ==10804==    by 0x7625E98: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3000.2)
# ==10804==    by 0x7FA50CE: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==10804==    by 0x7FA58C7: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==10804==    by 0x7FA5E01: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==10804==    by 0x767CDC5: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3000.2)
# ==10804==    by 0x7FCA7E5: ??? (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==10804==    by 0x5076B3F: start_thread (pthread_create.c:304)
# ==10804==    by 0x8AC636C: clone (clone.S:112)
# ==10804== 
{
   GIO thread leak
   Memcheck:Leak
   fun:malloc
   fun:g_malloc
   ...
   obj:*libgio*
   obj:*libglib*
   ...
   fun:start_thread
}
{
   GIO thread leak, variant 2
   Memcheck:Leak
   fun:malloc
   fun:standard_malloc
   ...
   fun:g_simple_async_result_complete
   ...
   fun:g_main_loop_run
   fun:clone
}
# This occurred with self-compiled glib on Debian Testing after Debian Wheezy:
# stack backtrace stops above parse_value_from_blob(). This is unfortunately
# very broad :-(
{
   GIO thread leak, variant 2
   Memcheck:Leak
   fun:malloc
   ...
   fun:parse_value_from_blob
}

# ==12501== 168 (64 direct, 104 indirect) bytes in 1 blocks are definitely lost in loss record 1,124 of 1,317
# ==12501==    at 0x4C272B8: calloc (vg_replace_malloc.c:566)
# ==12501==    by 0x9736E38: g_malloc0 (gmem.c:189)
# ==12501==    by 0x9211965: _g_socket_read_with_control_messages (gdbusprivate.c:182)
# ==12501==    by 0x9211B54: _g_dbus_worker_do_read_unlocked (gdbusprivate.c:860)
# ==12501==    by 0x9213AA1: _g_dbus_worker_do_read_cb (gdbusprivate.c:809)
# ==12501==    by 0x91B53F6: g_simple_async_result_complete (gsimpleasyncresult.c:767)
# ==12501==    by 0x91B54F8: complete_in_idle_cb (gsimpleasyncresult.c:779)
# ==12501==    by 0x9731204: g_main_context_dispatch (gmain.c:2539)
# ==12501==    by 0x9731537: g_main_context_iterate.isra.23 (gmain.c:3146)
# ==12501==    by 0x9731931: g_main_loop_run (gmain.c:3340)
# ==12501==    by 0x92117F5: gdbus_shared_thread_func (gdbusprivate.c:277)
# ==12501==    by 0x9753DF4: g_thread_proxy (gthread.c:801)
# ==12501==    by 0x7C08B4F: start_thread (pthread_create.c:304)
# ==12501==    by 0xA2556DC: clone (clone.S:112)
#
# Also found elsewhere:
# https://mail.gnome.org/archives/commits-list/2011-November/msg05945.html
#
# Seen in syncevo-local-sync during TestLocalSync.testPassswordRequestTimeout
# and some other, non-D-Bus tests. Perhaps we fail to handle a message?
{
   GIO D-Bus leak in syncevo-local-sync
   Memcheck:Leak
   fun:calloc
   fun:g_malloc0
   fun:_g_socket_read_with_control_messages
   fun:_g_dbus_worker_do_read_unlocked
   fun:_g_dbus_worker_do_read_cb
   fun:g_simple_async_result_complete
   fun:complete_in_idle_cb
   ...
   fun:g_thread_proxy
   fun:start_thread
}

# ==658== 5,184 (24 direct, 5,160 indirect) bytes in 1 blocks are definitely lost in loss record 4,621 of 4,713
# ==658==    at 0x4C274A0: malloc (vg_replace_malloc.c:291)
# ==658==    by 0x8815DC0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==658==    by 0x882B93D: g_slice_alloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==658==    by 0x882BE7D: g_slice_alloc0 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==658==    by 0x80DE5EC: _g_dbus_worker_close (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.2)
# ==658==    by 0x80DE676: _g_dbus_worker_stop (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.2)
# ==658==    by 0x80CA9AE: g_dbus_connection_dispose (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.2)
# ==658==    by 0x858BA6B: g_object_unref (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.2)
# ==658==    by 0xD03490: SyncEvo::LocalTransportChild::~LocalTransportChild() (intrusive_ptr.hpp:97)
# ==658==    by 0x873535: boost::detail::sp_counted_base::release() (sp_counted_base_gcc_x86.hpp:146)
# ==658==    by 0xCFB9C5: SyncEvo::LocalTransportAgent::shutdown() (shared_count.hpp:371)
# ==658==    by 0xC7F96E: SyncEvo::SyncContext::doSync() (SyncContext.cpp:4341)
# ==658==    by 0xC890E7: SyncEvo::SyncContext::sync(SyncEvo::SyncReport*) (SyncContext.cpp:3422)
# ==658==    by 0x8799E2: SyncEvo::TestEvolution::doSync(int const*, std::string const&, SyncEvo::SyncOptions const&) (client-test-app.cpp:431)
# ==658==    by 0xA7C131: SyncEvo::SyncTests::doSync(SyncEvo::SyncOptions const&) (ClientTest.cpp:5949)
# ==658==    by 0xA8D6B4: SyncEvo::SyncTests::doSync(char const*, SyncEvo::SyncOptions const&) (ClientTest.h:890)
# ==658==    by 0xA8D846: SyncEvo::SyncTests::doSync(char const*, int, char const*, SyncEvo::SyncOptions const&) (ClientTest.h:895)
# ==658==    by 0x9FA026: SyncEvo::SyncTests::refreshClient(SyncEvo::SyncOptions) (ClientTest.cpp:3025)
# ==658==    by 0xA51F3B: SyncEvo::SyncTests::testItems() (ClientTest.cpp:4289)
# ==658==    by 0xAE10DD: CppUnit::TestCaller<SyncEvo::SyncTests>::runTest() (TestCaller.h:166)
# ==658==    by 0x79D1241: CppUnit::TestCaseMethodFunctor::operator()() const (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0x79C7F8E: CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0x79CE969: CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0x79D6EA4: CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::string const&) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0x79D0FC1: CppUnit::TestCase::run(CppUnit::TestResult*) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0x79D6849: CppUnit::TestResult::runTest(CppUnit::Test*) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0x79D8A48: CppUnit::TestRunner::run(CppUnit::TestResult&, std::string const&) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0x79DAB29: CppUnit::TextTestRunner::run(std::string, bool, bool, bool) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0xAE42CB: main (client-test-main.cpp:348)
# ==658== 
#
# Seen after updating to glib 2.38.2-5 on Debian Testing.
{
   g_dbus_connection_dispose + worker
   Memcheck:Leak
   fun:malloc
   ...
   fun:_g_dbus_worker_close
   fun:_g_dbus_worker_stop
   fun:g_dbus_connection_dispose
}

# ==18093== 1,934 (48 direct, 1,886 indirect) bytes in 1 blocks are definitely lost in loss record 8,719 of 8,806
# ==18093==    at 0x4C2A5B0: calloc (vg_replace_malloc.c:618)
# ==18093==    by 0x9C65A41: g_malloc0 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
# ==18093==    by 0x97275C8: _g_dbus_worker_send_message (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4000.0)
# ==18093==    by 0x9714D7A: g_dbus_connection_send_message_unlocked (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4000.0)
# ==18093==    by 0x9717AEF: g_dbus_connection_send_message (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4000.0)
# ==18093==    by 0x6AE9CE: GDBusCXX::EmitSignalHelper<false>::sendMsg(GDBusCXX::DBusMessagePtr const&) (gdbus-cxx-bridge.h:686)
# ==18093==    by 0x69FC32: SyncEvo::Server::logOutput(GDBusCXX::DBusObject_t const&, SyncEvo::Logger::Level, std::string const&, std::string const&) (gdbus-cxx-bridge.h:905)
# ==18093==    by 0x6C7F8F: SyncEvo::Logging2Server(SyncEvo::Server&, GDBusCXX::DBusObject_t const&, std::string const&, std::string const&, std::string const&) (session.cpp:974)
# ==18093==    by 0x6D96E1: boost::detail::function::void_function_obj_invoker3<boost::_bi::bind_t<void, void (*)(SyncEvo::Server&, GDBusCXX::DBusObject_t const&, std::string const&, std::string const&, std::string const&), boost::_bi::list5<boost::reference_wrapper<SyncEvo::Server>, boost::_bi::value<char const*>, boost::arg<1>, boost::arg<2>, boost::arg<3> > >, void, std::string const&, std::string const&, std::string const&>::invoke(boost::detail::function::function_buffer&, std::string const&, std::string const&, std::string const&) (bind.hpp:525)
# ==18093==    by 0x6DDC03: GDBusCXX::SignalWatch3<std::string, std::string, std::string>::internalCallback(_GDBusConnection*, char const*, char const*, char const*, char const*, _GVariant*, void*) (function_template.hpp:767)
# ==18093==    by 0x97133A3: emit_signal_instance_in_idle_cb (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4000.0)
# ==18093==    by 0x9C5FDDC: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
# ==18093==    by 0x9C601B7: g_main_context_iterate.isra.29 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
# ==18093==    by 0x9C604E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
# ==18093==    by 0x6A0DAF: SyncEvo::Server::run() (server.cpp:543)
# ==18093==    by 0x65FDE3: main (main.cpp:221)
# ==18093== 
{
   pending log messages
   Memcheck:Leak
   ...
   fun:_g_dbus_worker_send_message
   ...
   fun:*logOutput*
}

# ==658== 53,621 (1,512 direct, 52,109 indirect) bytes in 7 blocks are definitely lost in loss record 4,703 of 4,713
# ==658==    at 0x4C29590: calloc (vg_replace_malloc.c:618)
# ==658==    by 0x8815E18: g_malloc0 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==658==    by 0x80DE31C: _g_dbus_worker_new (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.2)
# ==658==    by 0x80D26CE: initable_init (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.2)
# ==658==    by 0x806A6F9: g_initable_new_valist (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.2)
# ==658==    by 0x806A7DB: g_initable_new (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.2)
# ==658==    by 0x80D0B64: g_dbus_connection_new_sync (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.2)
# ==658==    by 0x80E3F0B: on_run (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.2)
# ==658==    by 0x10683CFB: ffi_call_unix64 (in /usr/lib/x86_64-linux-gnu/libffi.so.6.0.1)
# ==658==    by 0x1068362B: ffi_call (in /usr/lib/x86_64-linux-gnu/libffi.so.6.0.1)
# ==658==    by 0x8587DD4: g_cclosure_marshal_generic_va (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.2)
# ==658==    by 0x8587366: _g_closure_invoke_va (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.2)
# ==658==    by 0x859FDF7: g_signal_emit_valist (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.2)
# ==658==    by 0x85A0A51: g_signal_emit (in /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0.3800.2)
# ==658==    by 0x808DAFA: g_threaded_socket_service_func (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.2)
# ==658==    by 0x8835A4B: g_thread_pool_thread_proxy (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==658==    by 0x8835094: g_thread_proxy (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==658==    by 0x9A7B061: start_thread (pthread_create.c:312)
# ==658==    by 0xA592A3C: clone (clone.S:111)
# ==658==
#
# Seen after updating to glib 2.38.2-5 on Debian Testing.
{
   g_dbus_connection_new_sync + worker
   Memcheck:Leak
   fun:calloc
   ...
   fun:_g_dbus_worker_new
   ...
   fun:g_dbus_connection_new_sync
}

# ==658== Syscall param rt_sigaction(act->sa_flags) points to uninitialised byte(s)
# ==658==    at 0x9A8298A: __libc_sigaction (sigaction.c:64)
# ==658==    by 0x880D312: unref_unix_signal_handler_unlocked (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==658==    by 0x880D38F: g_child_watch_finalize (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==658==    by 0x880D975: g_source_unref_internal (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==658==    by 0xBB6D57: SyncEvo::ForkExecParent::~ForkExecParent() (ForkExec.cpp:136)
# ==658==    by 0xBBE671: boost::detail::sp_counted_impl_p<SyncEvo::ForkExecParent>::dispose() (checked_delete.hpp:34)
# ==658==    by 0x873535: boost::detail::sp_counted_base::release() (sp_counted_base_gcc_x86.hpp:146)
# ==658==    by 0xCFB973: SyncEvo::LocalTransportAgent::shutdown() (shared_count.hpp:371)
# ==658==    by 0xC7F96E: SyncEvo::SyncContext::doSync() (SyncContext.cpp:4341)
# ==658==    by 0xC890E7: SyncEvo::SyncContext::sync(SyncEvo::SyncReport*) (SyncContext.cpp:3422)
# ==658==    by 0x8799E2: SyncEvo::TestEvolution::doSync(int const*, std::string const&, SyncEvo::SyncOptions const&) (client-test-app.cpp:431)
# ==658==    by 0xA7C131: SyncEvo::SyncTests::doSync(SyncEvo::SyncOptions const&) (ClientTest.cpp:5949)
# ==658==    by 0xA8D6B4: SyncEvo::SyncTests::doSync(char const*, SyncEvo::SyncOptions const&) (ClientTest.h:890)
# ==658==    by 0xA8D846: SyncEvo::SyncTests::doSync(char const*, int, char const*, SyncEvo::SyncOptions const&) (ClientTest.h:895)
# ==658==    by 0x9F8326: SyncEvo::SyncTests::deleteAll(SyncEvo::SyncTests::DeleteAllMode) (ClientTest.cpp:2969)
# ==658==    by 0xA518B9: SyncEvo::SyncTests::testItems() (ClientTest.cpp:4279)
# ==658==    by 0xAE10DD: CppUnit::TestCaller<SyncEvo::SyncTests>::runTest() (TestCaller.h:166)
# ==658==    by 0x79D1241: CppUnit::TestCaseMethodFunctor::operator()() const (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0x79C7F8E: CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0x79CE969: CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0x79D6EA4: CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::string const&) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0x79D0FC1: CppUnit::TestCase::run(CppUnit::TestResult*) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0x79D6849: CppUnit::TestResult::runTest(CppUnit::Test*) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0x79D8A48: CppUnit::TestRunner::run(CppUnit::TestResult&, std::string const&) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0x79DAB29: CppUnit::TextTestRunner::run(std::string, bool, bool, bool) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.1)
# ==658==    by 0xAE42CB: main (client-test-main.cpp:348)
# ==658==  Address 0xffeffc798 is on thread 1's stack
# ==658== 
# glib 2.38.2-5, already fixed later glib.
{
   sigaction in glib
   Memcheck:Param
   rt_sigaction(act->sa_flags)
   ...
   fun:unref_unix_signal_handler_unlocked
}
{
   sigaction in glib, II
   Memcheck:Param
   rt_sigaction(act->sa_restorer)
   ...
   fun:unref_unix_signal_handler_unlocked
}

# ==20309== 16 bytes in 1 blocks are definitely lost in loss record 1,731 of 8,896
# ==20309==    at 0x4C274A0: malloc (vg_replace_malloc.c:291)
# ==20309==    by 0x8815DC0: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x882B93D: g_slice_alloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x882BE7D: g_slice_alloc0 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x880D669: get_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x8810424: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x8810877: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x881091B: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x8810958: glib_worker_main (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x8835094: g_thread_proxy (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x9A7B061: start_thread (pthread_create.c:312)
# ==20309==    by 0xA592A3C: clone (clone.S:111)
# ==20309==
#
# Seen after updating to glib 2.38.2-5 on Debian Testing.
{
   glib thread, dispatch
   Memcheck:Leak
   fun:malloc
   fun:g_malloc
   fun:g_slice_alloc
   ...
   fun:g_main_context_dispatch
   ...
   fun:glib_worker_main
}

# ==20309== 2,032 bytes in 1 blocks are definitely lost in loss record 8,734 of 8,896
# ==20309==    at 0x4C29590: calloc (vg_replace_malloc.c:618)
# ==20309==    by 0x8815E18: g_malloc0 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x87E2BC0: thread_memory_from_self.part.12 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x882BA84: g_slice_alloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x882BE7D: g_slice_alloc0 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x880E4D3: g_source_new (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x88111E8: g_timeout_source_new (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x80F9C4D: ik_source_check (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3800.2)
# ==20309==    by 0x8810290: g_main_context_check (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x88107AA: g_main_context_iterate.isra.24 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x881091B: g_main_context_iteration (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x8810958: glib_worker_main (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x8835094: g_thread_proxy (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3800.2)
# ==20309==    by 0x9A7B061: start_thread (pthread_create.c:312)
# ==20309==    by 0xA592A3C: clone (clone.S:111)
# ==20309== 
#
# Seen after updating to glib 2.38.2-5 on Debian Testing.
{
   glib thread, ik_source_check
   Memcheck:Leak
   fun:calloc
   ...
   fun:g_source_new
   ...
   fun:ik_source_check
   ...
   fun:glib_worker_main
}

# ==24097== 596 (192 direct, 404 indirect) bytes in 1 blocks are definitely lost in loss record 1,605 of 1,743
# ==24097==    at 0x4C260C6: calloc (vg_replace_malloc.c:566)
# ==24097==    by 0x8064763: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x8065097: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x8065453: ??? (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x8063881: dbus_server_listen (in /lib/x86_64-linux-gnu/libdbus-1.so.3.5.8)
# ==24097==    by 0x5B8AEE: GDBusCXX::DBusServerCXX::listen(std::string const&, GDBusCXX::DBusErrorCXX*) (gdbus-cxx-bridge.cpp:73)
# ==24097==    by 0x73991F: SyncEvo::ForkExecParent::start() (ForkExec.cpp:81)
# ==24097==    by 0x725B33: SyncEvo::LocalTransportAgent::start() (LocalTransportAgent.cpp:143)
# ==24097==    by 0x6B79CD: SyncEvo::SyncContext::createTransportAgent(void*) (SyncContext.cpp:1517)
# ==24097==    by 0x5A4165: SyncEvo::DBusSync::createTransportAgent() (dbus-sync.cpp:94)
# ==24097==    by 0x6B116C: SyncEvo::SyncContext::doSync() (SyncContext.cpp:3373)
# ==24097==    by 0x6B6CD4: SyncEvo::SyncContext::sync(SyncEvo::SyncReport*) (SyncContext.cpp:2957)
# ==24097==    by 0x57A2BF: SyncEvo::Session::run(SyncEvo::LogRedirect&) (session.cpp:743)
# ==24097==    by 0x563497: SyncEvo::Server::run(SyncEvo::LogRedirect&) (server.cpp:362)
# ==24097==    by 0x53EF2D: main (main.cpp:119)
# ==24097== 
{
   dbus_server_list
   Memcheck:Leak
   ...
   fun:dbus_server_listen
   fun:*DBusServerCXX*listen*
}

# ==3390== 64 bytes in 2 blocks are possibly lost in loss record 1,748 of 3,335
# ==3390==    at 0x4C260C6: calloc (vg_replace_malloc.c:566)
# ==3390==    by 0x7478C69: g_malloc0 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==3390==    by 0x85113A: setup_connection (mainloop.c:331)
# ==3390==    by 0x8517E6: b_dbus_setup_server (mainloop.c:463)
# ==3390==    by 0x8503C3: GDBusCXX::DBusServerCXX::listen(std::string const&, GDBusCXX::DBusErrorCXX*) (gdbus-cxx-bridge.cpp:83)
# ==3390==    by 0x843AFF: SyncEvo::ForkExecParent::start() (ForkExec.cpp:81)
# ==3390==    by 0x82F3F3: SyncEvo::LocalTransportAgent::start() (LocalTransportAgent.cpp:143)
# ==3390==    by 0x7C0FDD: SyncEvo::SyncContext::createTransportAgent(void*) (SyncContext.cpp:1529)
# ==3390==    by 0x524B5E: SyncEvo::TestEvolution::doSync(int const*, std::string const&, SyncEvo::SyncOptions const&)::ClientTest::createTransportAgent() (SyncContext.h:645)
# ==3390==    by 0x7BA77C: SyncEvo::SyncContext::doSync() (SyncContext.cpp:3423)
# ==3390==    by 0x7C02E4: SyncEvo::SyncContext::sync(SyncEvo::SyncReport*) (SyncContext.cpp:3007)
# ==3390==    by 0x52FB91: SyncEvo::TestEvolution::doSync(int const*, std::string const&, SyncEvo::SyncOptions const&) (client-test-app.cpp:431)
# ==3390==    by 0x564D67: SyncEvo::SyncTests::doSync(SyncEvo::SyncOptions const&) (ClientTest.cpp:4997)
# ==3390==    by 0x69A0E0: SyncEvo::SyncTests::doSync(char const*, SyncEvo::SyncOptions const&) (ClientTest.h:837)
# ==3390==    by 0x55443A: SyncEvo::SyncTests::refreshClient(SyncEvo::SyncOptions) (ClientTest.h:842)
# ==3390==    by 0x542922: SyncEvo::SyncTests::testItems() (ClientTest.cpp:3379)
# ==3390==    by 0x6789749: CppUnit::TestCaseMethodFunctor::operator()() const (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==3390==    by 0x677CC83: CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==3390==    by 0x6785CC6: CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==3390==    by 0x6790423: CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::string const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==3390==    by 0x67894E7: CppUnit::TestCase::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==3390==    by 0x6790049: CppUnit::TestResult::runTest(CppUnit::Test*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==3390==    by 0x6792472: CppUnit::TestRunner::run(CppUnit::TestResult&, std::string const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==3390==    by 0x6794FDA: CppUnit::TextTestRunner::run(std::string, bool, bool, bool) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==3390==    by 0x5200DD: main (client-test-main.cpp:290)
# ==3390== 
#
# Probably a valid leak, but how to fix it in the (soon obsolete) code wasn't obvious.
# Very generic rule to also catch some other, similar leaks.
{
   b_dbus_setup_server
   Memcheck:Leak
   ...
   fun:b_dbus_setup_server
}

# ==19740== 72 bytes in 1 blocks are possibly lost in loss record 1,226 of 1,985
# ==19740==    at 0x4C260C6: calloc (vg_replace_malloc.c:566)
# ==19740==    by 0x9906590: g_malloc0 (gmem.c:189)
# ==19740==    by 0x9676368: g_closure_new_simple (gclosure.c:206)
# ==19740==    by 0x96778CF: g_cclosure_new (gclosure.c:917)
# ==19740==    by 0x968E91D: g_signal_connect_data (gsignal.c:2443)
# ==19740==    by 0x93DA9D8: has_connection (gdbusnameowning.c:425)
# ==19740==    by 0x93DB278: g_bus_own_name_on_connection (gdbusnameowning.c:550)
# ==19740==    by 0x66E560: GDBusCXX::dbus_get_bus_connection(char const*, char const*, bool, GDBusCXX::DBusErrorCXX*) (gdbus-cxx-bridge.cpp:86)
# ==19740==    by 0x5E3D54: main (main.cpp:109)
# ==19740== 
{
   g_cclosure_new + GIO D-Bus name owning leak
   Memcheck:Leak
   fun:calloc
   fun:g_malloc0
   fun:g_closure_new_simple
   fun:g_cclosure_new
   fun:g_signal_connect_data
   fun:has_connection
}

# ==10738== 72 bytes in 1 blocks are possibly lost in loss record 1,327 of 2,063
# ==10738==    at 0x4C260C6: calloc (vg_replace_malloc.c:566)
# ==10738==    by 0x94C3590: g_malloc0 (gmem.c:189)
# ==10738==    by 0x9233368: g_closure_new_simple (gclosure.c:206)
# ==10738==    by 0x92348CF: g_cclosure_new (gclosure.c:917)
# ==10738==    by 0x924B91D: g_signal_connect_data (gsignal.c:2443)
# ==10738==    by 0x8AC520E: notify_notification_show (in /usr/lib/x86_64-linux-gnu/libnotify.so.4.0.0)
# ==10738==    by 0x63A1BB: SyncEvo::AutoSyncManager::syncDone(SyncEvo::SyncMLStatus) (auto-sync-manager.cpp:335)
# ==10738==    by 0x62459C: SyncEvo::Session::run(SyncEvo::LogRedirect&) (session.cpp:768)
# ==10738==    by 0x60C8AC: SyncEvo::Server::run(SyncEvo::LogRedirect&) (server.cpp:362)
# ==10738==    by 0x5DDFBA: main (main.cpp:120)
# ==10738== 
{
   g_cclosure_new + notify_notification_show
   Memcheck:Leak
   fun:calloc
   fun:g_malloc0
   fun:g_closure_new_simple
   fun:g_cclosure_new
   fun:g_signal_connect_data
   fun:notify_notification_show
}

# ==27329== 2,032 bytes in 1 blocks are definitely lost in loss record 23,780 of 24,016
# ==27329==    at 0x4C260C6: calloc (vg_replace_malloc.c:566)
# ==27329==    by 0x8532590: g_malloc0 (gmem.c:189)
# ==27329==    by 0x84FEAEF: thread_memory_from_self.part.9 (gslice.c:512)
# ==27329==    by 0x8545984: g_slice_alloc (gslice.c:501)
# ==27329==    by 0x8545CA5: g_slice_alloc0 (gslice.c:1029)
# ==27329==    by 0x852BCCC: g_main_context_push_thread_default (gmain.c:671)
# ==27329==    by 0x759B90C: gdbus_shared_thread_func (gdbusprivate.c:276)
# ==27329==    by 0x854E404: g_thread_proxy (gthread.c:801)
# ==27329==    by 0x6E4AB4F: start_thread (pthread_create.c:304)
# ==27329==    by 0x9DD990C: clone (clone.S:112)
# ==27329== 
{
   GIO D-Bus thread
   Memcheck:Leak
   fun:calloc
   fun:g_malloc0
   fun:thread_memory_from_self.*
   fun:g_slice_alloc
   fun:g_slice_alloc0
   fun:g_main_context_push_thread_default
   fun:gdbus_shared_thread_func
}

# ==19386== 88 (32 direct, 56 indirect) bytes in 1 blocks are definitely lost in loss record 3,956 of 4,373
# ==19386==    at 0x402B9B5: calloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
# ==19386==    by 0x5C3299A: g_malloc0 (gmem.c:189)
# ==19386==    by 0x5AFFAF5: _g_socket_read_with_control_messages (gdbusprivate.c:183)
# ==19386==    by 0x5AFFCAC: _g_dbus_worker_do_read_unlocked (gdbusprivate.c:861)
# ==19386==    by 0x5B0219B: _g_dbus_worker_do_read_cb (gdbusprivate.c:745)
# ==19386==    by 0x5A98BB4: g_simple_async_result_complete (gsimpleasyncresult.c:777)
# ==19386==    by 0x5A98C1A: complete_in_idle_cb (gsimpleasyncresult.c:789)
# ==19386==    by 0x5C299EF: g_idle_dispatch (gmain.c:5205)
# ==19386==    by 0x5C2CCDD: g_main_context_dispatch (gmain.c:3054)
# ==19386==    by 0x5C2D087: g_main_context_iterate.isra.21 (gmain.c:3701)
# ==19386==    by 0x5C2D4EA: g_main_loop_run (gmain.c:3895)
# ==19386==    by 0x5E4408D: clone (clone.S:131)
# ==19386== 
{
   _g_socket_read_with_control_messages
   Memcheck:Leak
   fun:calloc
   fun:g_malloc0
   fun:_g_socket_read_with_control_messages
   fun:_g_dbus_worker_do_read_unlocked
}

# ==10677== 40 (16 direct, 24 indirect) bytes in 1 blocks are definitely lost in loss record 1,236 of 2,449
# ==10677==    at 0x4C28BED: malloc (vg_replace_malloc.c:263)
# ==10677==    by 0x9736F30: g_malloc (gmem.c:159)
# ==10677==    by 0x974B322: g_slice_alloc (gslice.c:1003)
# ==10677==    by 0x971E1FC: g_error_new_literal (gerror.c:456)
# ==10677==    by 0x971E464: g_set_error_literal (gerror.c:595)
# ==10677==    by 0x917B791: g_cancellable_set_error_if_cancelled (gcancellable.c:315)
# ==10677==    by 0x91BA816: g_socket_client_enumerator_callback (gsocketclient.c:1533)
# ==10677==    by 0x91B4536: g_simple_async_result_complete (gsimpleasyncresult.c:767)
# ==10677==    by 0x827D374: ??? (in /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.5.0)
# ==10677==    by 0x827DA55: ??? (in /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.5.0)
# ==10677==    by 0x827DB6C: ??? (in /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1.5.0)
# ==10677==    by 0x91B4536: g_simple_async_result_complete (gsimpleasyncresult.c:767)
# ==10677==    by 0x91B4638: complete_in_idle_cb (gsimpleasyncresult.c:779)
# ==10677==    by 0x9731354: g_main_context_dispatch (gmain.c:2539)
# ==10677==    by 0x9731687: g_main_context_iterate.isra.23 (gmain.c:3146)
# ==10677==    by 0x9731743: g_main_context_iteration (gmain.c:3207)
# ==10677==    by 0x69F646: main (sync-helper.cpp:177)
# ==10677== 
{
   soup + cancel
   Memcheck:Leak
   fun:malloc
   ...
   fun:g_cancellable_set_error_if_cancelled
   ...
   fun:g_simple_async_result_complete
   obj:*libsoup-2.4.so*
}

# ==1308== 38 (12 direct, 26 indirect) bytes in 1 blocks are definitely lost in loss record 1,695 of 3,005
# ==1308==    at 0x4029A28: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
# ==1308==    by 0x5447932: g_malloc (gmem.c:159)
# ==1308==    by 0x545DEC1: g_slice_alloc (gslice.c:1003)
# ==1308==    by 0x542DD03: g_error_new_literal (gerror.c:456)
# ==1308==    by 0x542DFC3: g_set_error_literal (gerror.c:595)
# ==1308==    by 0x52714D2: g_cancellable_set_error_if_cancelled (gcancellable.c:315)
# ==1308==    by 0x52B043B: g_socket_condition_timed_wait (gsocket.c:3474)
# ==1308==    by 0x52B06F7: g_socket_condition_wait (gsocket.c:3427)
# ==1308==    by 0x52B07A4: g_socket_accept (gsocket.c:2151)
# ==1308==    by 0x52B867D: accept_ready (gsocketlistener.c:694)
# ==1308==    by 0x52AEAC0: socket_source_dispatch (gsocket.c:3165)
# ==1308==    by 0x5441CDD: g_main_context_dispatch (gmain.c:3054)
# ==1308==    by 0x5442087: g_main_context_iterate.isra.21 (gmain.c:3701)
# ==1308==    by 0x5442147: g_main_context_iteration (gmain.c:3762)
# ==1308==    by 0x55838C4: (below main) (libc-start.c:260)
# ==1308== 
{
   g_socket_accept + cancel
   Memcheck:Leak
   fun:malloc
   ...
   fun:g_cancellable_set_error_if_cancelled
   ...
   fun:g_socket_accept
   fun:accept_ready
   fun:socket_source_dispatch
   fun:g_main_context_dispatch
}

# ==25864== 42 (16 direct, 26 indirect) bytes in 1 blocks are definitely lost in loss record 667 of 1,425
# ==25864==    at 0x4C28BED: malloc (vg_replace_malloc.c:263)
# ==25864==    by 0x999F180: g_malloc (gmem.c:159)
# ==25864==    by 0x99B41E2: g_slice_alloc (gslice.c:1003)
# ==25864==    by 0x9985A6C: g_error_new_literal (gerror.c:456)
# ==25864==    by 0x9985CD4: g_set_error_literal (gerror.c:595)
# ==25864==    by 0x93DEF31: g_cancellable_set_error_if_cancelled (gcancellable.c:315)
# ==25864==    by 0x941BEB2: g_socket_condition_timed_wait (gsocket.c:3474)
# ==25864==    by 0x941C442: g_socket_accept (gsocket.c:2151)
# ==25864==    by 0x94233B9: accept_ready (gsocketlistener.c:694)
# ==25864==    by 0x941A285: socket_source_dispatch (gsocket.c:3165)
# ==25864==    by 0x99993D4: g_main_context_dispatch (gmain.c:3054)
# ==25864==    by 0x9999717: g_main_context_iterate.isra.22 (gmain.c:3701)
# ==25864==    by 0x99997D3: g_main_context_iteration (gmain.c:3762)
# ==25864==    by 0x6CCAAE: main (sync-helper.cpp:202)
# ==25864== 
#
# First appeared in GNOME 3.8. Seems to be timing dependent. The code
# path is not reached when not running under valgrind.
{
   GIO socket error leak
   Memcheck:Leak
   fun:malloc
   fun:g_malloc
   fun:g_slice_alloc
   fun:g_error_new_literal
   fun:g_set_error_literal
   fun:g_cancellable_set_error_if_cancelled
   fun:g_socket_condition_timed_wait
   fun:g_socket_accept
   fun:accept_ready
   fun:socket_source_dispatch
   fun:g_main_context_dispatch
}

# ==212== 78 (72 direct, 6 indirect) bytes in 1 blocks are definitely lost in loss record 3,324 of 4,771
# ==212==    at 0x4C2BBCF: malloc (vg_replace_malloc.c:299)
# ==212==    by 0x8C5A728: g_malloc (gmem.c:94)
# ==212==    by 0x8C71932: g_slice_alloc (gslice.c:1025)
# ==212==    by 0x8C71FCD: g_slice_alloc0 (gslice.c:1051)
# ==212==    by 0x8C9987E: g_system_thread_new (gthread-posix.c:1151)
# ==212==    by 0x8C7BE9E: g_thread_new_internal (gthread.c:870)
# ==212==    by 0x8C7BF57: g_thread_new (gthread.c:823)
# ==212==    by 0x8C56280: g_get_worker_context (gmain.c:5699)
# ==212==    by 0x86B7E16: g_task_thread_pool_init (gtask.c:1908)
# ==212==    by 0x86B7E16: g_task_get_type (gtask.c:590)
# ==212==    by 0x8715610: ensure_required_types (gdbusprivate.c:227)
# ==212==    by 0x8715610: _g_dbus_shared_thread_ref (gdbusprivate.c:267)
# ==212==    by 0x8715610: _g_dbus_worker_new (gdbusprivate.c:1649)
# ==212==    by 0x8709216: initable_init (gdbusconnection.c:2573)
# ==212==    by 0x868EA1E: g_initable_new_valist (ginitable.c:228)
# ==212==    by 0x868EAD5: g_initable_new (ginitable.c:146)
# ==212==    by 0x870749D: g_dbus_connection_new_sync (gdbusconnection.c:2774)
# ==212==    by 0xBCC4A8: GDBusCXX::DBusServerCXX::listen(boost::function<void (GDBusCXX::DBusServerCXX&, GDBusCXX::DBusConnectionPtr&)> const&, GDBusCXX::DBusErrorCXX*) (gdbus-cxx-bridge.cpp:315)
# ==212==    by 0xC4518B: SyncEvo::ForkExecParent::start() (ForkExec.cpp:188)
# ==212==    by 0xC5B6BF: SyncEvo::ForkExecTest::testNotFound() (ForkExec.cpp:681)
# ==212==    by 0x7FDE5B1: CppUnit::TestCaseMethodFunctor::operator()() const (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.2)
# ==212==    by 0x7FD4EB2: CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.2)
# ==212==    by 0x7FDB7E1: CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.2)
# ==212==    by 0x7FE3E4F: CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.2)
# ==212==    by 0x7FDE38F: CppUnit::TestCase::run(CppUnit::TestResult*) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.2)
# ==212==    by 0x7FE3D71: CppUnit::TestResult::runTest(CppUnit::Test*) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.2)
# ==212==    by 0x7FE647D: CppUnit::TestRunner::run(CppUnit::TestResult&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.2)
# ==212==    by 0x7FE826F: CppUnit::TextTestRunner::run(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, bool, bool, bool) (in /usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0.0.2)
# ==212==    by 0xB5320E: main (client-test-main.cpp:394)
# ==212==
# First seen on Debian Stretch.
{
   g_dbus_connection_new_sync + thread pool
   Memcheck:Leak
   fun:malloc
   fun:g_malloc
   ...
   fun:g_task_thread_pool_init
   ...
   fun:g_dbus_connection_new_sync
}

### KDE ###

# ==21052== 1,040 bytes in 26 blocks are possibly lost in loss record 5,184 of 5,271
# ==21052==    at 0x4C27673: malloc (vg_replace_malloc.c:263)
# ==21052==    by 0x6E13E80: QListData::detach_grow(int*, int) (in /usr/lib/libQtCore.so.4.7.3)
# ==21052==    by 0x66C2028: ??? (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x677656A: KStandardDirs::addResourceType(char const*, char const*, QString const&, bool) (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x6776E16: KStandardDirs::addKDEDefaults() (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x676E9E4: ??? (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x676F03F: KComponentData::config() const (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x676C2F5: KGlobal::config() (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x67EF05A: ??? (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x684285B: ??? (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x67EB637: KLocale::KLocale(QString const&, KSharedPtr<KSharedConfig>) (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x676CE35: KGlobal::locale() (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x61EB01D: ??? (in /usr/lib/libkdeui.so.5.6.0)
# ==21052==    by 0x61EBF57: KApplication::KApplication(bool) (in /usr/lib/libkdeui.so.5.6.0)
# ==21052==    by 0x7C440E: SyncEvo::SyncContext::initMain(char const*) (SyncContext.cpp:2829)
# ==21052==    by 0x52B95C: SyncEvo::RegisterTestEvolution::RegisterTestEvolution() (client-test-app.cpp:573)
# ==21052==    by 0x526758: _GLOBAL__sub_I_client_test_app.cpp (client-test-app.cpp:589)
# ==21052==    by 0x96774C: __libc_csu_init (in /data/runtests/work/testing-amd64/build/src/client-test)
# ==21052==    by 0xA323E3F: (below main) (libc-start.c:187)
# ==21052== 
{
   KApplication + malloc
   Memcheck:Leak
   ...
   fun:*KDEInitMain*
}
{
   Qt + malloc
   Memcheck:Leak
   ...
   obj:*libQtCore*
}

# ==21052== 30,404 bytes in 414 blocks are possibly lost in loss record 5,268 of 5,271
# ==21052==    at 0x4C27673: malloc (vg_replace_malloc.c:263)
# ==21052==    by 0x6E3786A: QString::QString(QChar const*, int) (in /usr/lib/libQtCore.so.4.7.3)
# ==21052==    by 0x6E38C3A: QString::mid(int, int) const (in /usr/lib/libQtCore.so.4.7.3)
# ==21052==    by 0x682D606: KStringHandler::perlSplit(QRegExp const&, QString const&, int) (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x6718C21: ??? (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x6719E45: ??? (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x671A1CC: ??? (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x671AA1D: KSystemTimeZones::readZone(QString const&) (in /usr/lib/libkdecore.so.5.6.0)
# ==21052==    by 0x18342945: KCalCore::ICalTimeZoneSource::standardZone(QString const&, bool) (in /usr/lib/libkcalcore.so.4.6.0)
# ==21052==    by 0x1832DDCE: ??? (in /usr/lib/libkcalcore.so.4.6.0)
# ==21052==    by 0x1832DF7E: ??? (in /usr/lib/libkcalcore.so.4.6.0)
# ==21052==    by 0x1833743C: ??? (in /usr/lib/libkcalcore.so.4.6.0)
# ==21052==    by 0x18337EC5: ??? (in /usr/lib/libkcalcore.so.4.6.0)
# ==21052==    by 0x18338CBE: ??? (in /usr/lib/libkcalcore.so.4.6.0)
# ==21052==    by 0x183270BA: KCalCore::ICalFormat::fromRawString(QSharedPointer<KCalCore::Calendar> const&, QByteArray const&, bool, QString const&) (in /usr/lib/libkcalcore.so.4.6.0)
# ==21052==    by 0x18326B5F: KCalCore::ICalFormat::fromString(QSharedPointer<KCalCore::Calendar> const&, QString const&, bool, QString const&) (in /usr/lib/libkcalcore.so.4.6.0)
# ==21052==    by 0x1832B8BD: KCalCore::ICalFormat::fromString(QString const&) (in /usr/lib/libkcalcore.so.4.6.0)
# ==21052==    by 0x17E6B7F6: ??? (in /usr/lib/kde4/akonadi_serializer_kcalcore.so)
# ==21052==    by 0x538EE31: ??? (in /usr/lib/libakonadi-kde.so.4.6.0)
# ==21052==    by 0x538F465: ??? (in /usr/lib/libakonadi-kde.so.4.6.0)
# ==21052==    by 0x537B1C8: Akonadi::Item::setPayloadFromData(QByteArray const&) (in /usr/lib/libakonadi-kde.so.4.6.0)
# ==21052==    by 0x6E0C62: SyncEvo::AkonadiSyncSource::insertItem(std::string const&, std::string const&, bool) (akonadisyncsource.cpp:175)
# ==21052==    by 0x8342FF: SyncEvo::TrackingSyncSource::insertItemRaw(std::string const&, std::string const&) (TrackingSyncSource.cpp:151)
# ==21052==    by 0x6C2A24: SyncEvo::AkonadiTest::testTimezones() (AkonadiSyncSourceRegister.cpp:145)
# ==21052==    by 0x7E4C749: CppUnit::TestCaseMethodFunctor::operator()() const (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==21052==    by 0x7E3FC83: CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==21052==    by 0x7E48CC6: CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==21052==    by 0x7E53423: CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::string const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==21052==    by 0x7E4C4E7: CppUnit::TestCase::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==21052==    by 0x7E4CC22: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==21052== 
{
   Akonadi leaks
   Memcheck:Leak
   ...
   fun:*Akonadi*
}

# ==21829== 66 bytes in 1 blocks are possibly lost in loss record 2,504 of 5,276
# ==21829==    at 0x4C27673: malloc (vg_replace_malloc.c:263)
# ==21829==    by 0x6E39682: QString::fromLatin1_helper(char const*, int) (in /usr/lib/libQtCore.so.4.7.3)
# ==21829==    by 0x6E3978D: QString::fromLatin1(char const*, int) (in /usr/lib/libQtCore.so.4.7.3)
# ==21829==    by 0x6F0B142: ??? (in /usr/lib/libQtCore.so.4.7.3)
# ==21829==    by 0x6E397F1: QString::fromLocal8Bit(char const*, int) (in /usr/lib/libQtCore.so.4.7.3)
# ==21829==    by 0x6E727A4: ??? (in /usr/lib/libQtCore.so.4.7.3)
# ==21829==    by 0x6E72C49: QFile::decodeName(QByteArray const&) (in /usr/lib/libQtCore.so.4.7.3)
# ==21829==    by 0x676FDBD: KStandardDirs::realPath(QString const&) (in /usr/lib/libkdecore.so.5.6.0)
# ==21829==    by 0x67785C7: KStandardDirs::saveLocation(char const*, QString const&, bool) const (in /usr/lib/libkdecore.so.5.6.0)
# ==21829==    by 0x6778C57: KStandardDirs::locateLocal(char const*, QString const&, bool, KComponentData const&) (in /usr/lib/libkdecore.so.5.6.0)
# ==21829==    by 0x6778CC0: KStandardDirs::locateLocal(char const*, QString const&, KComponentData const&) (in /usr/lib/libkdecore.so.5.6.0)
# ==21829==    by 0x6743120: KTemporaryFile::KTemporaryFile(KComponentData const&) (in /usr/lib/libkdecore.so.5.6.0)
# ==21829==    by 0x684459E: KLockFile::lock(QFlags<KLockFile::LockFlag>) (in /usr/lib/libkdecore.so.5.6.0)
# ==21829==    by 0x677B148: KToolInvocation::startKdeinit() (in /usr/lib/libkdecore.so.5.6.0)
# ==21829==    by 0x677B51F: KToolInvocation::klauncher() (in /usr/lib/libkdecore.so.5.6.0)
# ==21829==    by 0x6719FB4: ??? (in /usr/lib/libkdecore.so.5.6.0)
# ==21829==    by 0x671A1CC: ??? (in /usr/lib/libkdecore.so.5.6.0)
# ==21829==    by 0x671AA1D: KSystemTimeZones::readZone(QString const&) (in /usr/lib/libkdecore.so.5.6.0)
# ==21829==    by 0x18342945: KCalCore::ICalTimeZoneSource::standardZone(QString const&, bool) (in /usr/lib/libkcalcore.so.4.6.0)
# ==21829==    by 0x1832DDCE: ??? (in /usr/lib/libkcalcore.so.4.6.0)
# ==21829==    by 0x1832DF7E: ??? (in /usr/lib/libkcalcore.so.4.6.0)
# ==21829==    by 0x1833743C: ??? (in /usr/lib/libkcalcore.so.4.6.0)
# ==21829==    by 0x18337EC5: ??? (in /usr/lib/libkcalcore.so.4.6.0)
# ==21829==    by 0x18338CBE: ??? (in /usr/lib/libkcalcore.so.4.6.0)
# ==21829==    by 0x183270BA: KCalCore::ICalFormat::fromRawString(QSharedPointer<KCalCore::Calendar> const&, QByteArray const&, bool, QString const&) (in /usr/lib/libkcalcore.so.4.6.0)
# ==21829==    by 0x18326B5F: KCalCore::ICalFormat::fromString(QSharedPointer<KCalCore::Calendar> const&, QString const&, bool, QString const&) (in /usr/lib/libkcalcore.so.4.6.0)
# ==21829==    by 0x1832B8BD: KCalCore::ICalFormat::fromString(QString const&) (in /usr/lib/libkcalcore.so.4.6.0)
# ==21829==    by 0x17E6B7F6: ??? (in /usr/lib/kde4/akonadi_serializer_kcalcore.so)
# ==21829==    by 0x538EE31: ??? (in /usr/lib/libakonadi-kde.so.4.6.0)
# ==21829==    by 0x538F465: ??? (in /usr/lib/libakonadi-kde.so.4.6.0)
# ==21829== 
{
   kcalcore leaks
   Memcheck:Leak
   ...
   obj:*libkcalcore*
}

# ==22290== Invalid read of size 4
# ==22290==    at 0x1224B673: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x1224D9D4: FcConfigFilename (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x12260895: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x12260F5D: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x92CEAAB: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92CF8A0: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92CC77B: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92CE10A: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92D16B1: XML_ParseBuffer (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x122609F0: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x12260CF7: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x12260F5D: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x92CEAAB: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92CF8A0: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92CC77B: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92CE10A: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92D16B1: XML_ParseBuffer (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x122609F0: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x12256246: FcInitLoadConfig (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x12256325: FcInitLoadConfigAndFonts (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x12256524: FcInit (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0xBE2CF69: ??? (in /usr/lib/libQtGui.so.4.7.3)
# ==22290==    by 0xBDBAB53: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (in /usr/lib/libQtGui.so.4.7.3)
# ==22290==    by 0xBDBB2A7: QApplication::QApplication(int&, char**, bool, int) (in /usr/lib/libQtGui.so.4.7.3)
# ==22290==    by 0x61EBE36: KApplication::KApplication(bool) (in /usr/lib/libkdeui.so.5.6.0)
# ==22290==    by 0x7C440E: SyncEvo::SyncContext::initMain(char const*) (SyncContext.cpp:2829)
# ==22290==    by 0x52B95C: SyncEvo::RegisterTestEvolution::RegisterTestEvolution() (client-test-app.cpp:573)
# ==22290==    by 0x526758: _GLOBAL__sub_I_client_test_app.cpp (client-test-app.cpp:589)
# ==22290==    by 0x96774C: __libc_csu_init (in /data/runtests/work/testing-amd64/build/src/client-test)
# ==22290==    by 0xA323E3F: (below main) (libc-start.c:187)
# ==22290==  Address 0x14d1fea4 is 20 bytes inside a block of size 22 alloc'd
# ==22290==    at 0x4C27673: malloc (vg_replace_malloc.c:263)
# ==22290==    by 0x1224B5CC: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x1224D9D4: FcConfigFilename (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x12260895: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x12260F5D: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x92CEAAB: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92CF8A0: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92CC77B: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92CE10A: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92D16B1: XML_ParseBuffer (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x122609F0: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x12260CF7: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x12260F5D: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x92CEAAB: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92CF8A0: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92CC77B: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92CE10A: ??? (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x92D16B1: XML_ParseBuffer (in /lib/x86_64-linux-gnu/libexpat.so.1.5.2)
# ==22290==    by 0x122609F0: FcConfigParseAndLoad (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x12256246: FcInitLoadConfig (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x12256325: FcInitLoadConfigAndFonts (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0x12256524: FcInit (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.4.4)
# ==22290==    by 0xBE2CF69: ??? (in /usr/lib/libQtGui.so.4.7.3)
# ==22290==    by 0xBDBAB53: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (in /usr/lib/libQtGui.so.4.7.3)
# ==22290==    by 0xBDBB2A7: QApplication::QApplication(int&, char**, bool, int) (in /usr/lib/libQtGui.so.4.7.3)
# ==22290==    by 0x61EBE36: KApplication::KApplication(bool) (in /usr/lib/libkdeui.so.5.6.0)
# ==22290==    by 0x7C440E: SyncEvo::SyncContext::initMain(char const*) (SyncContext.cpp:2829)
# ==22290==    by 0x52B95C: SyncEvo::RegisterTestEvolution::RegisterTestEvolution() (client-test-app.cpp:573)
# ==22290==    by 0x526758: _GLOBAL__sub_I_client_test_app.cpp (client-test-app.cpp:589)
# ==22290==    by 0x96774C: __libc_csu_init (in /data/runtests/work/testing-amd64/build/src/client-test)
# ==22290== 
{
   Qt + fontconfig
   Memcheck:Addr4
   obj:*libfontconfig*
}
{
   memory leaks in fontconfig
   Memcheck:Leak
   ...
   obj:*libfontconfig*
}

# ==2302== Syscall param write(buf) points to uninitialised byte(s)
# ==2302==    at 0x7E273A0: __write_nocancel (syscall-template.S:81)
# ==2302==    by 0x1276A697: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.6.2)
# ==2302==    by 0x127711F3: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.6.2)
# ==2302==    by 0x1276D4FA: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.6.2)
# ==2302==    by 0x1276D5AA: FcConfigBuildFonts (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.6.2)
# ==2302==    by 0x12775D4A: FcInitLoadConfigAndFonts (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.6.2)
# ==2302==    by 0x12775F08: FcInit (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.6.2)
# ==2302==    by 0xBD08876: ??? (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)
# ==2302==    by 0xBC9A3A9: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)
# ==2302==    by 0xBC9A748: QApplication::QApplication(int&, char**, bool, int) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)
# ==2302==    by 0x5DDD6A7: KApplication::KApplication(bool) (in /usr/lib/libkdeui.so.5.10.5)
# ==2302==    by 0x72709E: SyncEvo::KDEInitMainSlot(char const*) (KDEPlatform.cpp:107)
# ==2302==    by 0x7FC653: boost::signals2::detail::signal1_impl<void, char const*, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (char const*)>, boost::function<void (boost::signals2::connection const&, char const*)>, boost::signals2::mutex>::operator()(char const*) (function_template.hpp:767)
# ==2302==    by 0x7E7013: SyncEvo::SyncContext::initMain(char const*) (signal_template.hpp:695)
# ==2302==    by 0x63950A: main (main.cpp:158)
# ==2302==  Address 0x17674e5c is 716 bytes inside a block of size 94,448 alloc'd
# ==2302==    at 0x4C2935B: malloc (vg_replace_malloc.c:270)
# ==2302==    by 0x12769E5C: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.6.2)
# ==2302==    by 0x127711E0: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.6.2)
# ==2302==    by 0x1276D4FA: ??? (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.6.2)
# ==2302==    by 0x1276D5AA: FcConfigBuildFonts (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.6.2)
# ==2302==    by 0x12775D4A: FcInitLoadConfigAndFonts (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.6.2)
# ==2302==    by 0x12775F08: FcInit (in /usr/lib/x86_64-linux-gnu/libfontconfig.so.1.6.2)
# ==2302==    by 0xBD08876: ??? (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)
# ==2302==    by 0xBC9A3A9: QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)
# ==2302==    by 0xBC9A748: QApplication::QApplication(int&, char**, bool, int) (in /usr/lib/x86_64-linux-gnu/libQtGui.so.4.8.6)
# ==2302==    by 0x5DDD6A7: KApplication::KApplication(bool) (in /usr/lib/libkdeui.so.5.10.5)
# ==2302==    by 0x72709E: SyncEvo::KDEInitMainSlot(char const*) (KDEPlatform.cpp:107)
# ==2302==    by 0x7FC653: boost::signals2::detail::signal1_impl<void, char const*, boost::signals2::optional_last_value<void>, int, std::less<int>, boost::function<void (char const*)>, boost::function<void (boost::signals2::connection const&, char const*)>, boost::signals2::mutex>::operator()(char const*) (function_template.hpp:767)
# ==2302==    by 0x7E7013: SyncEvo::SyncContext::initMain(char const*) (signal_template.hpp:695)
# ==2302==    by 0x63950A: main (main.cpp:158)
# ==2302== 
{
   fontconfig write
   Memcheck:Param
   write(buf)
   ...
   obj:*/libfontconfig.so*
}

# ==10153== Conditional jump or move depends on uninitialised value(s)
# ==10153==    at 0x9758290: inflateReset2 (in /usr/lib/libz.so.1.2.3.4)
# ==10153==    by 0x975837F: inflateInit2_ (in /usr/lib/libz.so.1.2.3.4)
# ==10153==    by 0x126A2120: png_create_read_struct_2 (in /lib/x86_64-linux-gnu/libpng12.so.0.46.0)
# ==10153==    by 0x126A22C6: png_create_read_struct (in /lib/x86_64-linux-gnu/libpng12.so.0.46.0)
# ==10153==    by 0xBEA66F6: ??? (in /usr/lib/libQtGui.so.4.7.3)
# ==10153==    by 0xBEA7414: ??? (in /usr/lib/libQtGui.so.4.7.3)
# ==10153==    by 0xBE78FD7: QImageReader::read(QImage*) (in /usr/lib/libQtGui.so.4.7.3)
# ==10153==    by 0xBE79606: QImageReader::read() (in /usr/lib/libQtGui.so.4.7.3)
# ==10153==    by 0xBE69A7D: QImage::fromData(unsigned char const*, int, char const*) (in /usr/lib/libQtGui.so.4.7.3)
# ==10153==    by 0xBE6EA3F: QImage::loadFromData(unsigned char const*, int, char const*) (in /usr/lib/libQtGui.so.4.7.3)
# ==10153==    by 0x17CCFAC0: KABC::VCardTool::parsePicture(KABC::VCardLine const&) const (in /usr/lib/libkabc.so.4.6.0)
# ==10153==    by 0x17CD83A5: KABC::VCardTool::parseVCards(QByteArray const&) const (in /usr/lib/libkabc.so.4.6.0)
# ==10153==    by 0x17CCEA09: KABC::VCardConverter::parseVCards(QByteArray const&) const (in /usr/lib/libkabc.so.4.6.0)
# ==10153==    by 0x17CCEA5C: KABC::VCardConverter::parseVCard(QByteArray const&) const (in /usr/lib/libkabc.so.4.6.0)
# ==10153==    by 0x17A69E31: ??? (in /usr/lib/kde4/akonadi_serializer_addressee.so)
# ==10153==    by 0x538EE31: ??? (in /usr/lib/libakonadi-kde.so.4.6.0)
# ==10153==    by 0x538F465: ??? (in /usr/lib/libakonadi-kde.so.4.6.0)
# ==10153==    by 0x537B1C8: Akonadi::Item::setPayloadFromData(QByteArray const&) (in /usr/lib/libakonadi-kde.so.4.6.0)
# ==10153==    by 0x6E0C62: SyncEvo::AkonadiSyncSource::insertItem(std::string const&, std::string const&, bool) (akonadisyncsource.cpp:175)
# ==10153==    by 0x83443F: SyncEvo::TrackingSyncSource::insertItemRaw(std::string const&, std::string const&) (TrackingSyncSource.cpp:151)
# ==10153==    by 0x569099: SyncEvo::importItem(SyncEvo::TestingSyncSource*, SyncEvo::ClientTestConfig const&, std::string&) (ClientTest.cpp:299)
# ==10153==    by 0x56F4E9: SyncEvo::ClientTest::import(SyncEvo::ClientTest&, SyncEvo::TestingSyncSource&, SyncEvo::ClientTestConfig const&, std::string const&, std::string&, std::list<std::string, std::allocator<std::string> >*) (ClientTest.cpp:5223)
# ==10153==    by 0x6A05F9: boost::detail::function::function_invoker6<std::string (*)(SyncEvo::ClientTest&, SyncEvo::TestingSyncSource&, SyncEvo::ClientTestConfig const&, std::string const&, std::string&, std::list<std::string, std::allocator<std::string> >*), std::string, SyncEvo::ClientTest&, SyncEvo::TestingSyncSource&, SyncEvo::ClientTestConfig const&, std::string const&, std::string&, std::list<std::string, std::allocator<std::string> >*>::invoke(boost::detail::function::function_buffer&, SyncEvo::ClientTest&, SyncEvo::TestingSyncSource&, SyncEvo::ClientTestConfig const&, std::string const&, std::string&, std::list<std::string, std::allocator<std::string> >*) (function_template.hpp:95)
# ==10153==    by 0x5FF153: SyncEvo::LocalTests::testImport() (function_template.hpp:1013)
# ==10153==    by 0x7E4C749: CppUnit::TestCaseMethodFunctor::operator()() const (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==10153==    by 0x7E3FC83: CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==10153==    by 0x7E48CC6: CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==10153==    by 0x7E53423: CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::string const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==10153==    by 0x7E4C4E7: CppUnit::TestCase::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==10153==    by 0x7E4CC22: CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==10153== 
{
   png + Qt GUI
   Memcheck:Cond
   ...
   fun:png_create_*
   ...
   obj:*libQtGui.so*
}

# ==14778== 46 bytes in 1 blocks are possibly lost in loss record 865 of 1,692
# ==14778==    at 0x4C27673: malloc (vg_replace_malloc.c:263)
# ==14778==    by 0x8217C02: g_malloc (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==14778==    by 0x822E3BD: g_strdup (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.3000.2)
# ==14778==    by 0x7B01262: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3000.2)
# ==14778==    by 0x7B03F0C: ??? (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.3000.2)
# ==14778==    by 0x15FBC997: ??? (in /usr/lib/x86_64-linux-gnu/gio/modules/libgvfsdbus.so)
# ==14778==    by 0x6142B4: SyncEvo::GLibNotify::GLibNotify(char const*, boost::function<void ()(_GFile*, _GFile*, GFileMonitorEvent)> const&) (GLibSupport.cpp:205)
# ==14778==    by 0x5718DD: SyncEvo::Server::run(SyncEvo::LogRedirect&) (server.cpp:338)
# ==14778==    by 0x54799B: main (main.cpp:120)
# ==14778== 
{
   GIO potential leak
   Memcheck:Leak
   fun:malloc
   fun:g_malloc
   fun:g_strdup
   obj:*libgio-2.0.so*
   ...
   obj:*gio/modules/libgvfsdbus.so
}

# ==8627== 840 bytes in 28 blocks are possibly lost in loss record 574 of 681
# ==8627==    at 0x48DB796: calloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
# ==8627==    by 0x95AED52: ??? (in /lib/i386-linux-gnu/libglib-2.0.so.0.3000.2)
# ==8627== 
{
   glib leak i386
   Memcheck:Leak
   fun:calloc
   obj:/lib/i386-linux-gnu/libglib-2.0.so.0.3000.2
}

# ==15919== Jump to the invalid address stated on the next line
# ==15919==    at 0x4CE: ???
# ==15919==    by 0x4005557: open_verify (dl-load.c:1821)
# ==15919==    by 0x4005BE7: open_path (dl-load.c:2082)
# ==15919==    by 0x4007A91: _dl_map_object (dl-load.c:2285)
# ==15919==    by 0x400CF61: openaux (dl-deps.c:65)
# ==15919==    by 0x400D925: _dl_catch_error (dl-error.c:178)
# ==15919==    by 0x400C02B: _dl_map_object_deps (dl-deps.c:247)
# ==15919==    by 0x40032B6: dl_main (rtld.c:1815)
# ==15919==    by 0x4014B2D: _dl_sysdep_start (dl-sysdep.c:244)
# ==15919==    by 0x4001422: _dl_start (rtld.c:342)
# ==15919==    by 0x4000AF7: ??? (in /lib/x86_64-linux-gnu/ld-2.13.so)
# ==15919==  Address 0x4ce is not stack'd, malloc'd or (recently) free'd
# ==15919== 
{
   segfault caused by valgrind + libdl
   Memcheck:Jump
   obj:*
   ...
   fun:_dl_start
}

# ==19740== 72 bytes in 1 blocks are possibly lost in loss record 1,226 of 1,985
# ==19740==    at 0x4C260C6: calloc (vg_replace_malloc.c:566)
# ==19740==    by 0x9906590: g_malloc0 (gmem.c:189)
# ==19740==    by 0x9676368: g_closure_new_simple (gclosure.c:206)
# ==19740==    by 0x96778CF: g_cclosure_new (gclosure.c:917)
# ==19740==    by 0x968E91D: g_signal_connect_data (gsignal.c:2443)
# ==19740==    by 0x93DA9D8: has_connection (gdbusnameowning.c:425)
# ==19740==    by 0x93DB278: g_bus_own_name_on_connection (gdbusnameowning.c:550)
# ==19740==    by 0x66E560: GDBusCXX::dbus_get_bus_connection(char const*, char const*, bool, GDBusCXX::DBusErrorCXX*) (gdbus-cxx-bridge.cpp:86)
# ==19740==    by 0x5E3D54: main (main.cpp:109)
# ==19740== 
{
   g_cclosure_new + GIO D-Bus name owning leak
   Memcheck:Leak
   fun:calloc
   fun:g_malloc0
   fun:g_closure_new_simple
   fun:g_cclosure_new
   fun:g_signal_connect_data
   fun:has_connection
}

# ==10738== 72 bytes in 1 blocks are possibly lost in loss record 1,327 of 2,063
# ==10738==    at 0x4C260C6: calloc (vg_replace_malloc.c:566)
# ==10738==    by 0x94C3590: g_malloc0 (gmem.c:189)
# ==10738==    by 0x9233368: g_closure_new_simple (gclosure.c:206)
# ==10738==    by 0x92348CF: g_cclosure_new (gclosure.c:917)
# ==10738==    by 0x924B91D: g_signal_connect_data (gsignal.c:2443)
# ==10738==    by 0x8AC520E: notify_notification_show (in /usr/lib/x86_64-linux-gnu/libnotify.so.4.0.0)
# ==10738==    by 0x63A1BB: SyncEvo::AutoSyncManager::syncDone(SyncEvo::SyncMLStatus) (auto-sync-manager.cpp:335)
# ==10738==    by 0x62459C: SyncEvo::Session::run(SyncEvo::LogRedirect&) (session.cpp:768)
# ==10738==    by 0x60C8AC: SyncEvo::Server::run(SyncEvo::LogRedirect&) (server.cpp:362)
# ==10738==    by 0x5DDFBA: main (main.cpp:120)
# ==10738== 
{
   g_cclosure_new + notify_notification_show
   Memcheck:Leak
   fun:calloc
   fun:g_malloc0
   fun:g_closure_new_simple
   fun:g_cclosure_new
   fun:g_signal_connect_data
   fun:notify_notification_show
}

# ==14656== 100 bytes in 1 blocks are possibly lost in loss record 838 of 1,005
# ==14656==    at 0x4C27209: operator new(unsigned long) (vg_replace_malloc.c:287)
# ==14656==    by 0x9C52FC8: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16)
# ==14656==    by 0x9C549D4: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16)
# ==14656==    by 0x9C54B22: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16)
# ==14656==    by 0x11971F9B: ??? (in /usr/lib/libstreamanalyzer.so.0.7.7)
# ==14656==    by 0x11972257: ??? (in /usr/lib/libstreamanalyzer.so.0.7.7)
# ==14656==    by 0x400DCCF: call_init (dl-init.c:85)
# ==14656==    by 0x400DDC6: _dl_init (dl-init.c:134)
# ==14656==    by 0x4000B29: ??? (in /lib/x86_64-linux-gnu/ld-2.13.so)
# ==14656== 
{
   Strigi search init leak
   Memcheck:Leak
   ...
   obj:*libstreamanalyzer.so*
   fun:call_init
   fun:_dl_init
}

# ==14906== 30 bytes in 1 blocks are possibly lost in loss record 311 of 1,005
# ==14906==    at 0x4C27209: operator new(unsigned long) (vg_replace_malloc.c:287)
# ==14906==    by 0x9C52FC8: std::string::_Rep::_S_create(unsigned long, unsigned long, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16)
# ==14906==    by 0x9C549D4: char* std::string::_S_construct<char const*>(char const*, char const*, std::allocator<char> const&, std::forward_iterator_tag) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16)
# ==14906==    by 0x9C54B22: std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string(char const*, std::allocator<char> const&) (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.16)
# ==14906==    by 0x145E4C5E: ??? (in /usr/lib/libstreams.so.0.7.7)
# ==14906==    by 0x145E4CDA: ??? (in /usr/lib/libstreams.so.0.7.7)
# ==14906==    by 0x400DCCF: call_init (dl-init.c:85)
# ==14906==    by 0x400DDC6: _dl_init (dl-init.c:134)
# ==14906==    by 0x4000B29: ??? (in /lib/x86_64-linux-gnu/ld-2.13.so)
# ==14906== 
{
   Strigi stream search leak II
   Memcheck:Leak
   ...
   obj:*libstreams.so*
   fun:call_init
   fun:_dl_init
}

# ==25464== 24 bytes in 1 blocks are definitely lost in loss record 1,967 of 5,019
# ==25464==    at 0x4C28BED: malloc (vg_replace_malloc.c:263)
# ==25464==    by 0xA91BD50: g_malloc (gmem.c:159)
# ==25464==    by 0xA930C92: g_slice_alloc (gslice.c:1003)
# ==25464==    by 0xA9311E5: g_slice_alloc0 (gslice.c:1029)
# ==25464==    by 0xA925622: g_queue_copy (gqueue.c:222)
# ==25464==    by 0x1A8851D3: tp_proxy_poll_features (proxy.c:2202)
# ==25464==    by 0x1A885974: tp_proxy_emit_invalidated (proxy.c:618)
# ==25464==    by 0x1A78D92A: _tp_account_manager_got_all_cb (account-manager.c:482)
# ==25464==    by 0x1A880F32: _tp_cli_dbus_properties_invoke_callback_get_all (tp-cli-generic-body.h:1204)
# ==25464==    by 0x1A88714F: tp_proxy_pending_call_idle_invoke (proxy-methods.c:155)
# ==25464==    by 0xA916114: g_main_context_dispatch (gmain.c:2715)
# ==25464==    by 0xA916447: g_main_context_iterate.isra.24 (gmain.c:3290)
# ==25464==    by 0xA916841: g_main_loop_run (gmain.c:3484)
# ==25464==    by 0x781A01: SyncEvo::Server::run() (server.cpp:439)
# ==25464==    by 0x74B15A: main (main.cpp:158)
# ==25464== 
{
   tp_proxy_pending_call_idle_invoke
   Memcheck:Leak
   fun:malloc
   fun:g_malloc
   fun:g_slice_alloc
   fun:g_slice_alloc0
   fun:g_queue_copy
   fun:tp_proxy_poll_features
   fun:tp_proxy_emit_invalidated
   fun:_tp_account_manager_got_all_cb
   fun:_tp_cli_dbus_properties_invoke_callback_get_all
   fun:tp_proxy_pending_call_idle_invoke
   fun:g_main_context_dispatch
   ...
   fun:g_main_loop_run
   fun:_ZN7SyncEvo6Server3runEv
   fun:main
}

# ==4782== 2,048 bytes in 1 blocks are definitely lost in loss record 2,395 of 2,503
# ==4782==    at 0x4C28BED: malloc (vg_replace_malloc.c:263)
# ==4782==    by 0x4C28D6F: realloc (vg_replace_malloc.c:632)
# ==4782==    by 0x10955415: ??? (in /usr/lib/x86_64-linux-gnu/libgnutls.so.26.22.4)
# ==4782==    by 0x109480DD: ??? (in /usr/lib/x86_64-linux-gnu/libgnutls.so.26.22.4)
# ==4782==    by 0x10944048: gnutls_session_get_data2 (in /usr/lib/x86_64-linux-gnu/libgnutls.so.26.22.4)
# ==4782==    by 0x6E4D666: ne_sock_connect_ssl (in /usr/lib/libneon-gnutls.so.27.2.6)
# ==4782==    by 0x6E572DE: ??? (in /usr/lib/libneon-gnutls.so.27.2.6)
# ==4782==    by 0x6E454F9: ??? (in /usr/lib/libneon-gnutls.so.27.2.6)
# ==4782==    by 0x6E45D1B: ne_begin_request (in /usr/lib/libneon-gnutls.so.27.2.6)
# ==4782==    by 0x6E453AC: ne_request_dispatch (in /usr/lib/libneon-gnutls.so.27.2.6)
# ==4782==    by 0x6E52BCC: ??? (in /usr/lib/libneon-gnutls.so.27.2.6)
# ==4782==    by 0x8ECB01: SyncEvo::Neon::Session::propfindURI(std::string const&, int, ne_propname const*, boost::function<void ()(SyncEvo::Neon::URI const&, ne_prop_result_set_s const*)> const&, SyncEvo::Timespec const&) (NeonCXX.cpp:426)
# ==4782==    by 0x8ECE4E: SyncEvo::Neon::Session::propfindProp(std::string const&, int, ne_propname const*, boost::function<void ()(SyncEvo::Neon::URI const&, ne_propname const*, char const*, ne_status const*)> const&, SyncEvo::Timespec const&) (NeonCXX.cpp:461)
# ==4782==    by 0x8E1539: SyncEvo::WebDAVSource::databaseRevision() (WebDAVSource.cpp:1332)
# ==4782==    by 0x8CF30C: SyncEvo::CalDAVSource::subDatabaseRevision() (CalDAVSource.h:37)
# ==4782==    by 0xA56FCC: SyncEvo::MapSyncSource::endSync(bool) (MapSyncSource.cpp:252)
# ==4782==    by 0x86FCEB: SyncEvo::TestingSyncSourcePtr::stopAccess() (ClientTest.cpp:349)
# ==4782==    by 0x870424: SyncEvo::TestingSyncSourcePtr::reset(SyncEvo::TestingSyncSource*, SyncEvo::TestingSyncSourcePtr::Flags) (ClientTest.cpp:294)
# ==4782==    by 0x7A3188: SyncEvo::LocalTests::testImport() (ClientTest.cpp:1473)
# ==4782==    by 0x7546B50: CppUnit::TestCaseMethodFunctor::operator()() const (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==4782==    by 0x753CBB4: CppUnit::DefaultProtector::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==4782==    by 0x7543B71: CppUnit::ProtectorChain::protect(CppUnit::Functor const&, CppUnit::ProtectorContext const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==4782==    by 0x754C6F4: CppUnit::TestResult::protect(CppUnit::Functor const&, CppUnit::Test*, std::string const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==4782==    by 0x754676E: CppUnit::TestCase::run(CppUnit::TestResult*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==4782==    by 0x754C679: CppUnit::TestResult::runTest(CppUnit::Test*) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==4782==    by 0x754EB38: CppUnit::TestRunner::run(CppUnit::TestResult&, std::string const&) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==4782==    by 0x7550DA5: CppUnit::TextTestRunner::run(std::string, bool, bool, bool) (in /usr/lib/libcppunit-1.12.so.1.0.0)
# ==4782==    by 0x6B921A: main (client-test-main.cpp:349)
# ==4782== 
#
# Started to appear on testing-amd64 after switching Apple CalDAV testing to https.
# FDO #61851
# 
{
   neon + gnutls
   Memcheck:Leak
   ...
   fun:gnutls_session_get_data2
   fun:ne_sock_connect_ssl
}

# ==15770== 38 (12 direct, 26 indirect) bytes in 1 blocks are definitely lost in loss record 1,210 of 2,105
# ==15770==    at 0x4029A28: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
# ==15770==    by 0x5447932: g_malloc (gmem.c:159)
# ==15770==    by 0x545DEC1: g_slice_alloc (gslice.c:1003)
# ==15770==    by 0x542DD03: g_error_new_literal (gerror.c:456)
# ==15770==    by 0x542DFC3: g_set_error_literal (gerror.c:595)
# ==15770==    by 0x52714D2: g_cancellable_set_error_if_cancelled (gcancellable.c:315)
# ==15770==    by 0x52BBCA2: g_task_propagate_error (gtask.c:1433)
# ==15770==    by 0x52BC5EE: g_task_propagate_pointer (gtask.c:1508)
# ==15770==    by 0x5279DA7: g_dummy_proxy_resolver_lookup_finish (gdummyproxyresolver.c:116)
# ==15770==    by 0x52A9399: g_proxy_resolver_lookup_finish (gproxyresolver.c:196)
# ==15770==    by 0x52A8972: proxy_lookup_cb (gproxyaddressenumerator.c:494)
# ==15770==    by 0x52BBA90: g_task_return_now (gtask.c:1105)
# ==15770==    by 0x52BBACA: complete_in_idle_cb (gtask.c:1114)
# ==15770==    by 0x543E9EF: g_idle_dispatch (gmain.c:5205)
# ==15770==    by 0x5441CDD: g_main_context_dispatch (gmain.c:3054)
# ==15770==    by 0x5442087: g_main_context_iterate.isra.21 (gmain.c:3701)
# ==15770==    by 0x54424EA: g_main_loop_run (gmain.c:3895)
# ==15770==    by 0x83BC85B: SyncEvo::SyncContext::doSync() (SyncContext.cpp:4157)
# ==15770==    by 0x83C645A: SyncEvo::SyncContext::sync(SyncEvo::SyncReport*) (SyncContext.cpp:3414)
# ==15770==    by 0x8246973: SyncEvo::SessionHelper::doSync(SyncEvo::SessionCommon::SyncParams const&, boost::shared_ptr<GDBusCXX::Result2<bool, SyncEvo::SyncReport> > const&) (session-helper.cpp:221)
# ==15770==    by 0xA7455AB: ???
# ==15770== 
#
# Seen with GNOME 3.8 on Debian Testing post Wheezy.
{
   dummy proxy error
   Memcheck:Leak
   fun:malloc
   ...
   fun:g_error_new_literal
   ...
   fun:g_cancellable_set_error_if_cancelled
   ...
   fun:g_dummy_proxy_resolver_lookup_finish
}

# ==17128== 38 (12 direct, 26 indirect) bytes in 1 blocks are definitely lost in loss record 1,206 of 2,123
# ==17128==    at 0x4029A28: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
# ==17128==    by 0x5447932: g_malloc (gmem.c:159)
# ==17128==    by 0x545DEC1: g_slice_alloc (gslice.c:1003)
# ==17128==    by 0x542DE05: g_error_copy (gerror.c:499)
# ==17128==    by 0x5161125: got_addresses (soup-address.c:1126)
# ==17128==    by 0x5160D1C: complete_resolve_async (soup-address.c:657)
# ==17128==    by 0x5160E3A: lookup_resolved (soup-address.c:699)
# ==17128==    by 0x52BBA90: g_task_return_now (gtask.c:1105)
# ==17128==    by 0x52BC1B5: g_task_return (gtask.c:1158)
# ==17128==    by 0x53BCCF8: g_cclosure_marshal_VOID__VOIDv (gmarshal.c:115)
# ==17128==    by 0x53BB2ED: _g_closure_invoke_va (gclosure.c:840)
# ==17128==    by 0x53D3AFC: g_signal_emit_valist (gsignal.c:3234)
# ==17128==    by 0x53D4672: g_signal_emit (gsignal.c:3384)
# ==17128==    by 0x527176C: g_cancellable_cancel (gcancellable.c:507)
# ==17128==    by 0x51936CD: soup_session_real_cancel_message (soup-session.c:2203)
# ==17128==    by 0x5197D62: soup_session_async_cancel_message (soup-session-async.c:111)
# ==17128==    by 0x5193CA7: soup_session_cancel_message (soup-session.c:2259)
# ==17128==    by 0x5193D46: soup_session_real_flush_queue (soup-session.c:2284)
# ==17128==    by 0x5193F4E: soup_session_abort (soup-session.c:2340)
# ==17128==    by 0x1101: ???
# ==17128== 
#
# GNOME 3.8
{
   soup session cancel error
   Memcheck:Leak
   fun:malloc
   ...
   fun:g_error_copy
   fun:got_addresses
   ...
   fun:soup_session_real_cancel_message
}

# ==17128== 38 (12 direct, 26 indirect) bytes in 1 blocks are definitely lost in loss record 1,207 of 2,123
# ==17128==    at 0x4029A28: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
# ==17128==    by 0x5447932: g_malloc (gmem.c:159)
# ==17128==    by 0x545DEC1: g_slice_alloc (gslice.c:1003)
# ==17128==    by 0x542DD03: g_error_new_literal (gerror.c:456)
# ==17128==    by 0x542DFC3: g_set_error_literal (gerror.c:595)
# ==17128==    by 0x52714D2: g_cancellable_set_error_if_cancelled (gcancellable.c:315)
# ==17128==    by 0x52BBCA2: g_task_propagate_error (gtask.c:1433)
# ==17128==    by 0x52BC5EE: g_task_propagate_pointer (gtask.c:1508)
# ==17128==    by 0x5160563: soup_address_address_enumerator_next_finish (soup-address.c:1162)
# ==17128==    by 0x52B44FD: g_socket_address_enumerator_next_finish (gsocketaddressenumerator.c:176)
# ==17128==    by 0x52A8809: address_enumerate_cb (gproxyaddressenumerator.c:461)
# ==17128==    by 0x52BBA90: g_task_return_now (gtask.c:1105)
# ==17128==    by 0x52BC1B5: g_task_return (gtask.c:1158)
# ==17128==    by 0x5161131: got_addresses (soup-address.c:1126)
# ==17128==    by 0x5160D1C: complete_resolve_async (soup-address.c:657)
# ==17128==    by 0x5160E3A: lookup_resolved (soup-address.c:699)
# ==17128==    by 0x52BBA90: g_task_return_now (gtask.c:1105)
# ==17128==    by 0x52BC1B5: g_task_return (gtask.c:1158)
# ==17128==    by 0x53BCCF8: g_cclosure_marshal_VOID__VOIDv (gmarshal.c:115)
# ==17128==    by 0x53BB2ED: _g_closure_invoke_va (gclosure.c:840)
# ==17128==    by 0x53D3AFC: g_signal_emit_valist (gsignal.c:3234)
# ==17128==    by 0x53D4672: g_signal_emit (gsignal.c:3384)
# ==17128==    by 0x527176C: g_cancellable_cancel (gcancellable.c:507)
# ==17128==    by 0x51936CD: soup_session_real_cancel_message (soup-session.c:2203)
# ==17128==    by 0x5197D62: soup_session_async_cancel_message (soup-session-async.c:111)
# ==17128==    by 0x5193CA7: soup_session_cancel_message (soup-session.c:2259)
# ==17128==    by 0x5193D46: soup_session_real_flush_queue (soup-session.c:2284)
# ==17128==    by 0x5193F4E: soup_session_abort (soup-session.c:2340)
# ==17128==    by 0x1101: ???
# ==17128== 
# GNOME 3.8
{
   soup session cancel error II
   Memcheck:Leak
   fun:malloc
   ...
   fun:g_error_new_literal
   ...
   fun:soup_address_address_enumerator_next_finish
   ...
   fun:soup_session_real_cancel_message
}

# ==21426== 54 (24 direct, 30 indirect) bytes in 1 blocks are definitely lost in loss record 4,770 of 8,459
# ==21426==    at 0x4C2B514: calloc (vg_replace_malloc.c:593)
# ==21426==    by 0x8808998: g_malloc0 (gmem.c:189)
# ==21426==    by 0x87E05A9: g_get_charset (gcharset.c:188)
# ==21426==    by 0x882019E: g_strerror (gstrfuncs.c:1245)
# ==21426==    by 0x8072961: g_pollable_input_stream_default_read_nonblocking (gpollableinputstream.c:152)
# ==21426==    by 0x8064AD4: read_async_pollable (ginputstream.c:1118)
# ==21426==    by 0x8064C4E: g_input_stream_real_read_async (ginputstream.c:1167)
# ==21426==    by 0x806583A: g_input_stream_read_async (ginputstream.c:631)
# ==21426==    by 0x80D4CD2: _g_dbus_worker_do_read_unlocked (gdbusprivate.c:850)
# ==21426==    by 0x80D4CFC: _g_dbus_worker_do_initial_read (gdbusprivate.c:879)
# ==21426==    by 0x8802EA5: g_main_context_dispatch (gmain.c:3054)
# ==21426==    by 0x88031F7: g_main_context_iterate.isra.22 (gmain.c:3701)
# ==21426==    by 0x88035F9: g_main_loop_run (gmain.c:3895)
# ==21426==    by 0x80D4D25: gdbus_shared_thread_func (gdbusprivate.c:278)
# ==21426==    by 0x88271D4: g_thread_proxy (gthread.c:798)
# ==21426==    by 0x9A6BE0D: start_thread (pthread_create.c:311)
# ==21426==    by 0xA5800FC: clone (clone.S:113)
# ==21426==
#
# Seen with glib 2.36.4 on Debian Testing > Wheezy.
# Can't be a real leak, the pointer is properly stored in a
# GPrivate with destructor. Probably the thread doesn't terminate
# normally and valgrind treats its thread-private data as leaked.
{
   glib GPrivate charset cache
   Memcheck:Leak
   fun:calloc
   fun:g_malloc0
   fun:g_get_charset
}

# ==2646== 2,032 bytes in 1 blocks are definitely lost in loss record 8,320 of 8,484
# ==2646==    at 0x4C2B514: calloc (vg_replace_malloc.c:593)
# ==2646==    by 0x8808998: g_malloc0 (gmem.c:189)
# ==2646==    by 0x87D58C8: thread_memory_from_self.part.12 (gslice.c:512)
# ==2646==    by 0x881E5E4: g_slice_alloc (gslice.c:1561)
# ==2646==    by 0x87EF76B: g_error_new_valist (gerror.c:393)
# ==2646==    by 0x87EFB1C: g_set_error (gerror.c:560)
# ==2646==    by 0x809EFE6: g_unix_input_stream_close (gunixinputstream.c:434)
# ==2646==    by 0x8066281: g_input_stream_close (ginputstream.c:509)
# ==2646==    by 0x80681C0: g_io_stream_real_close (giostream.c:340)
# ==2646==    by 0x8067E47: close_async_thread (giostream.c:544)
# ==2646==    by 0x8086044: g_task_thread_pool_thread (gtask.c:1242)
# ==2646==    by 0x8827B95: g_thread_pool_thread_proxy (gthreadpool.c:309)
# ==2646==    by 0x88271D4: g_thread_proxy (gthread.c:798)
# ==2646==    by 0x9A6BE0D: start_thread (pthread_create.c:311)
# ==2646==    by 0xA5800FC: clone (clone.S:113)
# ==2646== 
#
# Hmm, should we free the error that gets created here?
# Seen with glib 2.36.4 on Debian Testing > Wheezy after
# enabling D-Bus over sockets.
{
   GIO stream error
   Memcheck:Leak
   fun:calloc
   fun:g_malloc0
   ...
   fun:g_slice_alloc
   fun:g_error_new_valist
   fun:g_set_error
   fun:g_unix_input_stream_close
}

# ==1786== 38 (12 direct, 26 indirect) bytes in 1 blocks are definitely lost in loss record 2,573 of 4,270
# ==1786==    at 0x4029A28: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
# ==1786==    by 0x5C61982: g_malloc (gmem.c:159)
# ==1786==    by 0x5C78011: g_slice_alloc (gslice.c:1003)
# ==1786==    by 0x5C47D23: g_error_new_literal (gerror.c:456)
# ==1786==    by 0x5C47FE3: g_set_error_literal (gerror.c:595)
# ==1786==    by 0x5A6D502: g_cancellable_set_error_if_cancelled (gcancellable.c:315)
# ==1786==    by 0x5AB8BC5: g_task_return_error_if_cancelled (gtask.c:1707)
# ==1786==    by 0x5A9252F: read_async_pollable (ginputstream.c:1115)
# ==1786==    by 0x5A9270F: read_async_pollable_ready (ginputstream.c:1103)
# ==1786==    by 0x5AA2958: pollable_source_dispatch (gpollableutils.c:66)
# ==1786==    by 0x5C5BD21: g_main_context_dispatch (gmain.c:3054)
# ==1786==    by 0x5C5C0D7: g_main_context_iterate.isra.21 (gmain.c:3701)
# ==1786==    by 0x5C5C53A: g_main_loop_run (gmain.c:3895)
# ==1786==    by 0x5E97C3D: clone (clone.S:131)
# ==1786== 
#
# Same as previous one.
{
   GIO stream error, II
   Memcheck:Leak
   fun:malloc
   fun:g_malloc
   fun:g_slice_alloc
   fun:g_error_new_literal
   fun:g_set_error_literal
   fun:g_cancellable_set_error_if_cancelled
   fun:g_task_return_error_if_cancelled
   fun:read_async_pollable
}

# ==6180== 129 bytes in 1 blocks are definitely lost in loss record 4,587 of 5,318
# ==6180==    at 0x4C2A067: operator new[](unsigned long) (vg_replace_malloc.c:363)
# ==6180==    by 0x68330C: SyncEvo::mkdir_p(std::string const&) (util.cpp:147)
# ==6180==    by 0x70EBFD: SyncEvo::SourceList::dumpDatabases(std::string const&, SyncEvo::BackupReport SyncEvo::SyncSourceReport::*, std::string const&) (SyncContext.cpp:1223)
# ==6180==    by 0x7112AD: SyncEvo::SourceList::syncDone(SyncEvo::SyncMLStatus, SyncEvo::SyncReport*) (SyncContext.cpp:1430)
# ==6180==    by 0x6FCD44: SyncEvo::SyncContext::sync(SyncEvo::SyncReport*) (SyncContext.cpp:3492)
# ==6180==    by 0x672E03: SyncEvo::LocalTransportAgentChild::run() (LocalTransportAgent.cpp:948)
# ==6180==    by 0x669FA1: SyncEvo::LocalTransportMain(int, char**) (LocalTransportAgent.cpp:1168)
# ==6180==    by 0xA6FB994: (below main) (libc-start.c:276)
# ==6180==
# This can't be a real leak (?!), the allocated buffer directly gets stored
# in a boost::scoped_array<char>.
{
   boost::scoped_array + mkdir_p
   Memcheck:Leak
   ...
   fun:_ZN7SyncEvo7mkdir_pERKSs
}

# ==26935== 32 bytes in 1 blocks are definitely lost in loss record 4,665 of 7,062
# ==26935==    at 0x402BAD9: calloc (vg_replace_malloc.c:618)
# ==26935==    by 0x548461A: g_malloc0 (in /lib/i386-linux-gnu/libglib-2.0.so.0.3800.2)
# ==26935==    by 0x54848FA: g_malloc0_n (in /lib/i386-linux-gnu/libglib-2.0.so.0.3800.2)
# ==26935==    by 0x546CE2F: g_hash_table_resize (in /lib/i386-linux-gnu/libglib-2.0.so.0.3800.2)
# ==26935==    by 0x546E03F: g_hash_table_destroy (in /lib/i386-linux-gnu/libglib-2.0.so.0.3800.2)
# ==26935==    by 0x5474F27: g_key_file_remove_group_node (in /lib/i386-linux-gnu/libglib-2.0.so.0.3800.2)
# ==26935==    by 0x5475033: g_key_file_clear (in /lib/i386-linux-gnu/libglib-2.0.so.0.3800.2)
# ==26935==    by 0x547681E: g_key_file_free (in /lib/i386-linux-gnu/libglib-2.0.so.0.3800.2)
# ==26935==    by 0x4380DD4: source_finalize (e-source.c:912)
# ==26935==    by 0x53F7057: g_object_unref (in /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.3800.2)
# ==26935==    by 0x439257F: source_registry_unref_source (e-source-registry.c:692)
# ==26935==    by 0x546D0EB: g_hash_table_remove_all_nodes (in /lib/i386-linux-gnu/libglib-2.0.so.0.3800.2)
# ==26935==    by 0x546DFAE: g_hash_table_remove_all (in /lib/i386-linux-gnu/libglib-2.0.so.0.3800.2)
# ==26935==    by 0x4393DAA: source_registry_dispose (e-source-registry.c:1257)
# ==26935==    by 0x53F6FC7: g_object_unref (in /usr/lib/i386-linux-gnu/libgobject-2.0.so.0.3800.2)
# ==26935==    by 0x827F424: boost::detail::sp_counted_impl_p<SyncEvo::EDSRegistryLoader>::dispose() (EDSClient.h:39)
# ==26935==    by 0x82CB72F: boost::shared_ptr<SyncEvo::EDSRegistryLoader>::~shared_ptr() (sp_counted_base_gcc_x86.hpp:146)
# ==26935==    by 0x55B5FB0: __run_exit_handlers (exit.c:82)
# ==26935==    by 0x55B600C: exit (exit.c:104)
# ==26935==    by 0x559CA6A: (below main) (libc-start.c:321)
# ==26935== 
{
   freeing ESourceRegistry leaks memory
   Memcheck:Leak
   ...
   fun:g_object_unref
   fun:*EDSRegistryLoader*dispose*
   ...
   fun:__run_exit_handlers
}

# ==168== 40 bytes in 1 blocks are definitely lost in loss record 2,829 of 5,551
# ==168==    at 0x4C284C0: malloc (vg_replace_malloc.c:291)
# ==168==    by 0x88A0FDB: _g_locale_get_charset_aliases.part.0 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
# ==168==    by 0x88A137E: _g_locale_charset_unalias (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
# ==168==    by 0x8835BF9: g_get_charset (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
# ==168==    by 0x887896A: g_strerror (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
# ==168==    by 0x82B1DE1: g_pollable_input_stream_default_read_nonblocking (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4000.0)
# ==168==    by 0x82A3082: read_async_pollable (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4000.0)
# ==168==    by 0x82A4AEA: g_input_stream_real_read_async (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4000.0)
# ==168==    by 0x82A3D98: g_input_stream_read_async (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4000.0)
# ==168==    by 0x8320E4B: _g_dbus_worker_do_read_unlocked (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4000.0)
# ==168==    by 0x8320E7C: _g_dbus_worker_do_initial_read (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4000.0)
# ==168==    by 0x8859DDC: g_main_context_dispatch (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
# ==168==    by 0x885A1B7: g_main_context_iterate.isra.29 (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
# ==168==    by 0x885A4E1: g_main_loop_run (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
# ==168==    by 0x8320EA5: gdbus_shared_thread_func (in /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0.4000.0)
# ==168==    by 0x8880AA4: g_thread_proxy (in /lib/x86_64-linux-gnu/libglib-2.0.so.0.4000.0)
# ==168==    by 0x9B040A3: start_thread (pthread_create.c:309)
# ==168==    by 0xA620C2C: clone (clone.S:111)
# ==168== 
#
# Seen in ./client-test SyncEvo::ForkExecTest::testNotFound on Debian Testing Jessie.
{
   g_locale_get_charset_aliases in g_strerror
   Memcheck:Leak
   fun:malloc
   fun:_g_locale_get_charset_aliases*
   fun:_g_locale_charset_unalias
   fun:g_get_charset
   fun:g_strerror
}
