# qa/1080 and qa/490 and qa/386 and qa/459 on vm12 (Fedora 26)
# at 0x483123E: malloc (vg_replace_malloc.c:299)
# by 0x4A92343: tsearch (in /usr/lib/libc-2.25.so)
# by 0x487F84E: __pmFindPDUBuf (pdubuf.c:130)
# ...
{
   tsearch
   Memcheck:Leak
   match-leak-kinds: possible
   fun:malloc
   fun:tsearch
   fun:__pmFindPDUBuf
   ...
}

# qa/1080 and qa/490 and qa/386 and qa/459 on vm12 (Fedora 26)
# at 0x483123E: malloc (vg_replace_malloc.c:299)
# by 0x487F7F4: __pmFindPDUBuf (pdubuf.c:119)
# ...
{
   findpdubuf
   Memcheck:Leak
   match-leak-kinds: possible
   fun:malloc
   fun:__pmFindPDUBuf
   ...
}

# qa/720 on vm34 (Arch Linux)
# qa/720 on ubuntu1804-direct in CI
# at 0x4C2CE5F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
# by 0x5C4AFA2: sasl_client_new (in /usr/lib/libsasl2.so.3.0.0)
# by 0x4E9C5EA: __pmSecureClientIPCFlags (secureconnect.c:949)
# by 0x4E9C5EA: __pmSecureClientHandshake (secureconnect.c:1230)
# by 0x4E4E5AD: attributes_handshake (connect.c:205)
# by 0x4E4E5AD: __pmConnectHandshake (connect.c:306)
# by 0x4E4EDD0: __pmConnectPMCD (connect.c:465)
# by 0x4E51668: pmNewContext (context.c:1131)
# by 0x10A45B: main (pminfo.c:877)
{
   sasl_client_new
   Memcheck:Leak
   match-leak-kinds: definite
   fun:malloc
   fun:sasl_client_new
   ...
   fun:pmNewContext
   ...
}

# qa/681 on vm02 ... this one goes away when you compile w/out -O2,
# so probably bogus
#
# at 0x4C2E08F: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
# by 0x5163219: strdup (in /lib64/libc-2.26.so)
# by 0x4E9B742: __pmProcessAddArg (exec.c:167)
# by 0x4012E5: main (exectest.c:97)
{
   processaddarg_bogus
   Memcheck:Leak
   match-leak-kinds: possible
   fun:malloc
   fun:strdup
   fun:__pmProcessAddArg
   fun:main
}

# Seen in qa/720 on vm02 (OpenSuSE Leap 15.0) ... not our code at all
#
# Conditional jump or move depends on uninitialised value(s)
# at 0x4C34330: bcmp (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
# by 0x8EF108A: ??? (in /usr/lib64/libcrypto.so.1.1)
# by 0x8EF0235: FIPS_selftest (in /usr/lib64/libcrypto.so.1.1)
# by 0x8EEB09C: ??? (in /usr/lib64/libcrypto.so.1.1)
# by 0x8EFEFE0: FIPS_mode_set (in /usr/lib64/libcrypto.so.1.1)
# by 0x8E0416A: ??? (in /usr/lib64/libcrypto.so.1.1)
# by 0x400FBF9: call_init.part.0 (in /lib64/ld-2.26.so)
# by 0x400FD05: _dl_init (in /lib64/ld-2.26.so)
# by 0x4014488: dl_open_worker (in /lib64/ld-2.26.so)
# by 0x5232F83: _dl_catch_error (in /lib64/libc-2.26.so)
# by 0x4013C08: _dl_open (in /lib64/ld-2.26.so)
# by 0x6CDEF95: dlopen_doit (in /lib64/libdl-2.26.so)
{
   libcrypto botch #1
   Memcheck:Cond
   fun:bcmp
   obj:/usr/lib64/libcrypto.so.1.1
   fun:FIPS_selftest
   obj:/usr/lib64/libcrypto.so.1.1
   fun:FIPS_mode_set
   obj:/usr/lib64/libcrypto.so.1.1
   fun:call_init.part.0
   fun:_dl_init
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
   fun:dlopen_doit
}

# and this one also (same test and platform)
#
# Conditional jump or move depends on uninitialised value(s)
# at 0x8EEB0A1: ??? (in /usr/lib64/libcrypto.so.1.1)
# by 0x8EFEFE0: FIPS_mode_set (in /usr/lib64/libcrypto.so.1.1)
# by 0x8E0416A: ??? (in /usr/lib64/libcrypto.so.1.1)
# by 0x400FBF9: call_init.part.0 (in /lib64/ld-2.26.so)
# by 0x400FD05: _dl_init (in /lib64/ld-2.26.so)
# by 0x4014488: dl_open_worker (in /lib64/ld-2.26.so)
# by 0x5232F83: _dl_catch_error (in /lib64/libc-2.26.so)
# by 0x4013C08: _dl_open (in /lib64/ld-2.26.so)
# by 0x6CDEF95: dlopen_doit (in /lib64/libdl-2.26.so)
# by 0x5232F83: _dl_catch_error (in /lib64/libc-2.26.so)
# by 0x6CDF664: _dlerror_run (in /lib64/libdl-2.26.so)
# by 0x6CDF020: dlopen@@GLIBC_2.2.5 (in /lib64/libdl-2.26.so)
{
   libcrypto botch #2
   Memcheck:Cond
   obj:/usr/lib64/libcrypto.so.1.1
   fun:FIPS_mode_set
   obj:/usr/lib64/libcrypto.so.1.1
   fun:call_init.part.0
   fun:_dl_init
   fun:dl_open_worker
   fun:_dl_catch_error
   fun:_dl_open
   fun:dlopen_doit
   fun:_dl_catch_error
   fun:_dlerror_run
   fun:dlopen@@GLIBC_2.2.5
}

# qa/1293 seen on CI ubuntu1804i386-container
# Syscall param socketcall.send(msg) points to uninitialised byte(s)
# at 0x4A0325D: send (send.c:30)
# by 0x48B549E: __pmSend (in /usr/lib/libpcp.so.3)
# by 0x486D3E4: __pmXmitPDU (in /usr/lib/libpcp.so.3)
# by 0x4899890: __pmSendLogControl (in /usr/lib/libpcp.so.3)
# by 0x489AB5A: __pmControlLog (in /usr/lib/libpcp.so.3)
# by 0x10C157: ??? (in /usr/bin/pmlc)
# by 0x109B61: ??? (in /usr/bin/pmlc)
# by 0x4921F20: (below main) (libc-start.c:310)
# Address 0x507630c is 52 bytes inside a block of size 72 alloc'd
# at 0x483021B: malloc (in /usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
# by 0x486DC99: __pmFindPDUBuf (in /usr/lib/libpcp.so.3)
# by 0x48997DC: __pmSendLogControl (in /usr/lib/libpcp.so.3)
# by 0x489AB5A: __pmControlLog (in /usr/lib/libpcp.so.3)
# by 0x10C157: ??? (in /usr/bin/pmlc)
# by 0x109B61: ??? (in /usr/bin/pmlc)
# by 0x4921F20: (below main) (libc-start.c:310)
{
   __pmXmitPDU buffer for p_lcontrol.c
   Memcheck:Param
   socketcall.send(msg)
   fun:send
   fun:__pmSend
   fun:__pmXmitPDU
   fun:__pmSendLogControl
   fun:__pmControlLog
   ...
}

# Same thing, in CI on ubuntu1804-direct, but this one
# ends are socketcall.sendto(msg) rather than socketcall.send(msg)
#                         ^^
{
   __pmXmitPDU buffer for p_lcontrol.c
   Memcheck:Param
   socketcall.sendto(msg)
   fun:send
   fun:__pmSend
   fun:__pmXmitPDU
   fun:__pmSendLogControl
   fun:__pmControlLog
   ...
}
