# pacman suppressions for valgrind.
#
# To have valgrind use this file (and have pactest use it as well),
# just create a ~/.valgrindrc containing the following line:
# --suppressions=/full/path/to/valgrind.supp
#
# Format of this file is:
# {
#     name_of_suppression
#     tool_name:supp_kind
#     (optional extra info for some suppression types)
#     caller0 name, or /name/of/so/file.so
#     caller1 name, or ditto
#     (optionally: caller2 name)
#     (optionally: caller3 name)
#  }
#
# For Memcheck, the supp_kinds are:
#
#     Param Value1 Value2 Value4 Value8 Value16
#     Free Addr1 Addr2 Addr4 Addr8 Addr16
#     Cond (previously known as Value0)
#
# and the optional extra info is:
#     if Param: name of system call param
#     if Free: name of free-ing fn)

## OpenSSL suppressions, seen when invoking libfetch on a HTTPS URL
{
   openssl-supp-bin2bn
   Memcheck:Cond
   fun:BN_bin2bn
}
{
   openssl-supp-bits-word-cond
   Memcheck:Cond
   fun:BN_num_bits_word
}
{
   openssl-supp-bits-word-value
   Memcheck:Value8
   fun:BN_num_bits_word
}
{
   openssl-supp-mod-exp
   Memcheck:Value8
   fun:BN_mod_exp_mont_consttime
}
{
   openssl-supp-load-compressions
   Memcheck:Leak
   fun:malloc
   fun:CRYPTO_malloc
   ...
   fun:load_builtin_compressions
   fun:SSL_COMP_get_compression_methods
   fun:SSL_library_init
}
{
   gpgme-static-get-engine-info
   Memcheck:Leak
   fun:malloc
   ...
   fun:gpgme_get_engine_info
}
{
   gpgme-static-set-engine-info
   Memcheck:Leak
   fun:malloc
   ...
   fun:gpgme_set_engine_info
}
{
   gpgme-static-set-locale
   Memcheck:Leak
   fun:malloc
   fun:strdup
   fun:gpgme_set_locale
}
{
   memcpy-is-really-memmove-stupid-glibc
   Memcheck:Overlap
   fun:memcpy
   fun:strtrim
   fun:_parseconfig
   ...
   fun:parseconfig
}
{
   memcpy-inside-readdir
   Memcheck:Overlap
   fun:memcpy
   obj:/lib/libc-2.14.so
   ...
   fun:readdir
}
{
   memcpy-inside-regexec
   Memcheck:Overlap
   fun:memcpy
   obj:/lib/libc-2.14.so
   ...
   fun:regexec
}
