| # This is a valgrind suppressions file. |
| |
| # As in libnih, we often use a heap-allocated list head to link all of |
| # the allocated structures such as the event queue or job list. They |
| # are allocated the first time that we need them with the static *_init |
| # functions; valgrind complains because they are not freed before exit, |
| # as there's little point doing so. |
| |
| { |
| event-init |
| Memcheck:Leak |
| fun:malloc |
| fun:nih_alloc |
| fun:nih_list_new |
| fun:event_init |
| } |
| |
| { |
| job-class-init |
| Memcheck:Leak |
| fun:malloc |
| fun:nih_alloc |
| fun:nih_hash_new |
| fun:job_class_init |
| } |
| { |
| job-class-init |
| Memcheck:Leak |
| fun:malloc |
| fun:nih_alloc_ref_new |
| fun:nih_alloc |
| fun:nih_hash_new |
| fun:job_class_init |
| } |
| |
| { |
| notify-init |
| Memcheck:Leak |
| fun:malloc |
| fun:nih_alloc |
| fun:nih_list_new |
| fun:notify_init |
| } |
| |
| { |
| conf-init |
| Memcheck:Leak |
| fun:malloc |
| fun:nih_alloc |
| fun:nih_list_new |
| fun:conf_init |
| } |
| |
| { |
| control-init |
| Memcheck:Leak |
| fun:malloc |
| fun:nih_alloc |
| fun:nih_list_new |
| fun:control_init |
| } |
| |
| # job_run_process will leak its args member to children, knowing full |
| # well they will either exec() or exit() |
| { |
| job-process-run-args |
| Memcheck:Leak |
| fun:realloc |
| fun:_test_realloc |
| fun:nih_realloc |
| fun:nih_str_array_addp |
| fun:nih_str_array_addn |
| fun:nih_str_split |
| fun:job_process_run |
| } |
| |
| # job_name uses a static string which it reuses each time |
| { |
| job-name-string |
| Memcheck:Leak |
| fun:malloc |
| fun:realloc |
| fun:_test_realloc |
| fun:_test_malloc |
| fun:nih_alloc |
| fun:nih_strndup |
| fun:nih_strdup |
| fun:job_name |
| } |
| { |
| job-name-string |
| Memcheck:Leak |
| fun:malloc |
| fun:realloc |
| fun:_test_realloc |
| fun:_test_malloc |
| fun:nih_alloc |
| fun:nih_vsprintf |
| fun:nih_sprintf |
| fun:job_name |
| } |
| |
| # when testing stop events, the stopping event will be emitted and |
| # immediately processed since we're inside event_poll() - and then the |
| # post-stop process will be run inside the finished handler for it, making |
| # the child appear to leak it |
| { |
| job-emit-event-in-event-poll |
| Memcheck:Leak |
| fun:realloc |
| fun:_test_realloc |
| fun:nih_realloc |
| fun:nih_str_array_addp |
| fun:environ_add |
| fun:job_emit_event |
| fun:job_change_state |
| fun:job_change_goal |
| fun:event_pending_handle_jobs |
| fun:event_pending |
| fun:event_poll |
| } |
| |
| # valgrind seems to lose track of this one, it's definitely freed and |
| # just gets leaked when in a child |
| { |
| event-environ-in-event-poll |
| Memcheck:Leak |
| fun:realloc |
| fun:nih_realloc |
| fun:nih_str_array_addp |
| fun:nih_str_array_add |
| fun:test_pending_handle_jobs |
| } |
| |
| # collected environment will appear to be leaked from the child's POV when |
| # we run it inside event poll |
| { |
| event-operator-environment-in-event-poll |
| Memcheck:Leak |
| fun:realloc |
| fun:_test_realloc |
| fun:nih_realloc |
| fun:nih_str_array_addp |
| fun:environ_add |
| fun:event_operator_environment |
| fun:event_pending_handle_jobs |
| fun:event_pending |
| fun:event_poll |
| } |
| { |
| event-operator-environment-in-event-poll |
| Memcheck:Leak |
| fun:malloc |
| fun:realloc |
| fun:_test_realloc |
| fun:_test_malloc |
| fun:nih_alloc |
| fun:nih_strndup |
| fun:nih_strdup |
| fun:environ_add |
| fun:event_operator_environment |
| fun:event_pending_handle_jobs |
| fun:event_pending |
| fun:event_poll |
| } |
| { |
| event-operator-environment-in-event-poll |
| Memcheck:Leak |
| fun:malloc |
| fun:realloc |
| fun:_test_realloc |
| fun:_test_malloc |
| fun:nih_alloc |
| fun:nih_strndup |
| fun:nih_strdup |
| fun:environ_add |
| fun:environ_append |
| fun:event_operator_environment |
| fun:event_pending_handle_jobs |
| fun:event_pending |
| fun:event_poll |
| } |
| |
| |
| |
| # Surely this should be a default suppression? |
| { |
| glibc-setenv |
| Memcheck:Leak |
| fun:realloc |
| obj:/lib/libc-*.so |
| fun:setenv |
| } |
| { |
| glibc-setenv |
| Memcheck:Leak |
| fun:realloc |
| obj:/lib/tls/i686/cmov/libc-*.so |
| fun:setenv |
| } |