tests: add the valgrind suppression file from the "common" module
[platform/upstream/gstreamer.git] / tests / check / gstreamer.supp
1 ### this file contains suppressions for valgrind when running
2 ### the gstreamer unit tests
3 ### it might be useful for wider use as well
4
5 ### syscall suppressions
6
7 {
8    <clone on Wim's Debian>
9    Memcheck:Param
10    clone(parent_tidptr)
11    fun:clone
12    fun:clone
13 }
14
15 {
16    <clone on Wim's Debian>
17    Memcheck:Param
18    clone(child_tidptr)
19    fun:clone
20    fun:clone
21 }
22
23 {
24    <clone on Wim's Debian>
25    Memcheck:Param
26    clone(tlsinfo)
27    fun:clone
28    fun:clone
29 }
30
31 # a thread-related free problem in glibc from Edgard
32 {
33    __libc_freeres_rw_acess
34    Memcheck:Addr4
35    obj:*
36    obj:*
37    obj:*
38    obj:*
39    obj:*
40    fun:__libc_freeres
41 }
42
43 {
44    <futex on Andy's 64-bit ubuntu>
45    Memcheck:Param
46    futex(uaddr2)
47    fun:pthread_once
48    obj:/lib/libc-2.3.*.so
49    obj:/lib/libc-2.3.*.so
50    fun:mbsnrtowcs
51    fun:vfprintf
52    fun:vsprintf
53    fun:sprintf
54    obj:/lib/libc-2.3.*.so
55    fun:tmpfile
56    fun:setup_pipe
57    fun:setup_messaging_with_key
58    fun:setup_messaging
59 }
60
61 # suppression for a glibc bug:
62 # http://valgrind.org/docs/manual/faq.html#faq.exit_errors>
63 {
64    <Workaround for a glibc bug>
65    Memcheck:Free
66    fun:free
67    obj:*libc-*.so
68    fun:__libc_freeres
69    fun:*
70    fun:_Exit
71 }
72
73 # same as above, just so it works for tpm on gutsy/x86-64
74 {
75    <workaround glibc bug on gutsy x86-64>
76    Memcheck:Free
77    fun:free
78    fun:free_mem
79    fun:__libc_freeres
80 }
81
82 ### glib suppressions
83 {
84    <g_parse_debug_string>
85    Memcheck:Cond
86    fun:g_parse_debug_string
87    obj:/usr/lib*/libglib-2.0.so.*
88    fun:g_slice_alloc
89    fun:g_slice_alloc0
90 }
91
92 {
93    <g_type_init leaks>
94    Memcheck:Leak
95    fun:*alloc
96    ...
97    fun:g_type_init*
98    fun:init_pre*
99 }
100
101 {
102    <g_type_register_fundamental leaks>
103    Memcheck:Leak
104    fun:*alloc
105    ...
106    fun:g_type_register_fundamental
107 }
108
109 {
110    <glib 2.21 static type data>
111    Memcheck:Leak
112    fun:malloc
113    fun:realloc
114    fun:g_realloc
115    fun:type_node_any_new_W
116 }
117
118 {
119    <glib 2.21 static type data>
120    Memcheck:Leak
121    fun:realloc
122    fun:g_realloc
123    fun:type_node_any_new_W
124 }
125
126 {
127    <glib 2.21 static type data>
128    Memcheck:Leak
129    fun:calloc
130    fun:g_malloc0
131    fun:g_type_class_ref
132 }
133
134 {
135    <glib 2.21 static type data>
136    Memcheck:Leak
137    fun:malloc
138    fun:realloc
139    fun:g_realloc
140    fun:type_add_flags_W
141 }
142
143 {
144    <glib 2.21 static type data>
145    Memcheck:Leak
146    fun:calloc
147    fun:g_malloc0
148    fun:type_add_flags_W
149 }
150
151 #pthread memleaks
152
153 {
154    pthread_create Syscall param write(buf) points to uninitialised byte(s)
155    Memcheck:Param
156    write(buf)
157    fun:pthread_create@@GLIBC_2.2.5
158    fun:g_thread_create*
159
160 }
161
162 # nss_parse_* memleak (used by g_option_context_parse)
163 {
164    nss_parse_* memleak
165    Memcheck:Leak
166    fun:malloc
167    fun:nss_parse_service_list
168    fun:__nss_database_lookup
169 }
170
171 # liboil suppressions
172 {
173    <liboil cpu_fault_check_try>
174    Memcheck:Value8
175    obj:/usr/lib/liboil-0.3.so.0.1.0
176    obj:/usr/lib/liboil-0.3.so.0.1.0
177    obj:/usr/lib/liboil-0.3.so.0.1.0
178    fun:oil_cpu_fault_check_try
179    fun:oil_test_check_impl
180    fun:oil_class_optimize
181    fun:oil_optimize_all
182    fun:oil_init
183 }
184
185 {
186    <Ubuntu Dapper x86_64>
187    Memcheck:Param
188    futex(uaddr2)
189    fun:pthread_once
190    obj:/lib/libc-2.3.6.so
191    obj:/lib/libc-2.3.6.so
192    fun:setlocale
193    fun:init_pre
194    fun:g_option_context_parse
195    fun:gst_init_check
196    fun:gst_init
197    fun:gst_check_init
198    fun:main
199 }
200
201 {
202    <libcdio 0.76 leak>
203    Memcheck:Leak
204    fun:calloc
205    obj:/usr/lib/libcdio.so.6.0.1
206    fun:cdio_open_am_linux
207    obj:/usr/lib/libcdio.so.6.0.1
208    fun:cdio_open_am
209 }
210
211 {
212    <First of many Alsa errors>
213    Memcheck:Cond
214    fun:snd_pcm_direct_shm_create_or_connect
215    fun:snd_pcm_dsnoop_open
216    fun:_snd_pcm_dsnoop_open
217    obj:/*lib/libasound.so.2.0.0
218    obj:/*lib/libasound.so.2.0.0
219    fun:snd_pcm_open_slave
220    fun:_snd_pcm_plug_open
221    obj:/*lib/libasound.so.2.0.0
222    fun:snd_pcm_open_slave
223    fun:_snd_pcm_asym_open
224    obj:/*lib/libasound.so.2.0.0
225    obj:/*lib/libasound.so.2.0.0
226 }
227
228 {
229    <alsa error>
230    Memcheck:Cond
231    fun:snd*_pcm_hw_param_set_near
232 }
233
234 {
235    <alsa error>
236    Memcheck:Cond
237    ...
238    fun:snd*_pcm_hw_param_set_near
239 }
240
241 {
242    <alsa error>
243    Memcheck:Cond
244    obj:/*lib/libasound.so.2.0.0
245    obj:/*lib/libasound.so.2.0.0
246    fun:snd_pcm_close
247    obj:/*lib/libasound.so.2.0.0
248 }
249 {
250    <alsa error>
251    Memcheck:Cond
252    fun:snd_pcm_direct_shm_create_or_connect
253    fun:snd_pcm_dmix_open
254    fun:_snd_pcm_dmix_open
255    obj:/*lib/libasound.so.2.0.0
256    obj:/*lib/libasound.so.2.0.0
257    fun:snd_pcm_open_slave
258    fun:_snd_pcm_softvol_open
259    obj:/*lib/libasound.so.2.0.0
260    fun:snd_pcm_open_slave
261    fun:_snd_pcm_plug_open
262    obj:/*lib/libasound.so.2.0.0
263    fun:snd_pcm_open_slave
264    fun:_snd_pcm_asym_open
265    obj:/*lib/libasound.so.2.0.0
266    obj:/*lib/libasound.so.2.0.0
267 }
268 {
269    <alsa error>
270    Memcheck:Leak
271    fun:malloc
272    fun:strdup
273    fun:snd_dlobj_cache_add
274    obj:/*lib/libasound.so.2.0.0
275    fun:snd_pcm_open_slave
276    fun:snd_pcm_dsnoop_open
277    fun:_snd_pcm_dsnoop_open
278    obj:/*lib/libasound.so.2.0.0
279    obj:/*lib/libasound.so.2.0.0
280    fun:snd_pcm_open_slave
281    fun:_snd_pcm_plug_open
282    obj:/*lib/libasound.so.2.0.0
283    fun:snd_pcm_open_slave
284    fun:_snd_pcm_asym_open
285    obj:/*lib/libasound.so.2.0.0
286    obj:/*lib/libasound.so.2.0.0
287 }
288 # Catch about 15 variations on inserting info into an ALSA
289 # internal cache
290 {
291    <alsa error>
292    Memcheck:Leak
293    fun:malloc
294    ...
295    fun:snd*_dlobj_cache_add
296    obj:/*lib*/libasound.so.2.0.0
297 }
298
299 {
300    <alsa leak in loading configuration>
301    Memcheck:Leak
302    fun:*alloc
303    ...
304    fun:snd_pcm_open_conf
305 }
306
307 {
308    <alsa leak snd_config_hook_load>
309    Memcheck:Leak
310    fun:*alloc
311    obj:/*lib*/libasound.so.2.0.0
312    ...
313    fun:snd_config_hook_load
314 }
315
316 {
317    <alsa leak snd_config_update_r>
318    Memcheck:Leak
319    fun:*alloc
320    obj:/*lib*/libasound.so.2.0.0
321    ...
322    fun:snd_config_update_r
323    fun:snd_config_update
324 }
325 {
326    <alsa leak snd_config_update_r>
327    Memcheck:Leak
328    fun:*alloc
329    fun:strdup
330    ...
331    fun:snd_config_update_r
332    fun:snd_config_update
333 }
334
335 {
336    <nss lookup within ALSA>
337    Memcheck:Leak
338    fun:malloc
339    obj:/lib/libc*.so
340    fun:__nss_database_lookup
341    obj:*
342    obj:*
343    fun:getgrnam_r
344    fun:getgrnam
345    fun:snd_pcm_direct_parse_open_conf
346 }
347
348 {
349    <libxcb leak on Ubuntu Feisty>
350    Memcheck:Leak
351    fun:calloc
352    fun:_XCBInitDisplayLock
353    fun:XOpenDisplay
354 }
355
356 # GConf internal initialisations related to getting the default client.
357 {
358    <Orbit something or other>
359    Memcheck:Leak
360    fun:calloc
361    fun:g_malloc0
362    fun:ORBit_alloc_tcval
363    obj:/usr/lib/libORBit-2.so.*
364    fun:ORBit_demarshal_IOR
365    fun:ORBit_demarshal_object
366    fun:CORBA_ORB_string_to_object
367    obj:/usr/lib/libgconf-2.so.*
368    fun:gconf_get_current_lock_holder
369    fun:gconf_activate_server
370    obj:/usr/lib/libgconf-2.so.*
371    obj:/usr/lib/libgconf-2.so.*
372    fun:gconf_engine_get_default
373 }
374 {
375    <gconf internal leak>
376    Memcheck:Leak
377    fun:calloc
378    fun:g_malloc0
379    fun:ORBit_alloc_tcval
380    obj:*
381    fun:PortableServer_POA_servant_to_reference
382    fun:*
383    fun:*
384    fun:*
385    fun:gconf_engine_get_default
386 }
387 {
388    <gconf internal leak>
389    Memcheck:Leak
390    fun:calloc
391    fun:g_malloc0
392    fun:ORBit_alloc_tcval
393    obj:/usr/lib/libORBit-2.so.*
394    fun:ORBit_demarshal_IOR
395    fun:ORBit_demarshal_object
396    fun:CORBA_ORB_string_to_object
397    obj:/usr/lib/libgconf-2.so.*
398    fun:gconf_get_current_lock_holder
399    fun:gconf_activate_server
400    obj:/usr/lib/libgconf-2.so.*
401    obj:/usr/lib/libgconf-2.so.*
402    fun:gconf_engine_get_default
403 }
404 {
405    <gconf internal initialisation>
406    Memcheck:Leak
407    fun:calloc
408    fun:g_malloc0
409    fun:ORBit_alloc*
410    fun:*
411    fun:ORBit_demarshal_IOR
412    fun:ORBit_demarshal_object
413    fun:ORBit_demarshal_value
414    fun:*
415    fun:ORBit_small_invoke_stub
416    fun:ConfigServer_get_default_database
417    fun:*
418    fun:gconf_engine_get_default
419 }
420 {
421    <gconf internal init>
422    Memcheck:Leak
423    fun:calloc
424    fun:g_malloc0
425    fun:ORBit_alloc*
426    fun:*
427    fun:IOP_generate_profiles
428    fun:ORBit_marshal_object
429    fun:ORBit_marshal_value
430    fun:*
431    fun:ORBit_small_invoke_stub
432    fun:ConfigServer_add_client
433    fun:*
434    fun:*
435    fun:gconf_engine_get_default
436 }
437 {
438    <gconf internal init>
439    Memcheck:Leak
440    fun:calloc
441    fun:g_malloc0
442    fun:ORBit_alloc_by_tc
443    fun:*
444    fun:PortableServer_POA_servant_to_reference
445    fun:*
446    fun:*
447    fun:*
448    fun:gconf_engine_get_default
449 }
450 {
451    <gconf internal init>
452    Memcheck:Leak
453    fun:calloc
454    fun:g_malloc0
455    fun:ORBit_alloc_by_tc
456    obj:/usr/lib/libORBit-2.so.*
457    fun:ORBit_demarshal_IOR
458    fun:ORBit_demarshal_object
459    fun:CORBA_ORB_string_to_object
460    obj:/usr/lib/libgconf-2.so.*
461    fun:gconf_get_current_lock_holder
462    fun:gconf_activate_server
463    obj:/usr/lib/libgconf-2.so.*
464    obj:/usr/lib/libgconf-2.so.*
465    fun:gconf_engine_get_default
466 }
467
468 {
469    <insert a suppression name here>
470    Memcheck:Leak
471    fun:calloc
472    fun:g_malloc0
473    fun:ORBit_alloc*
474    fun:*
475    fun:ORBit_demarshal_IOR
476    fun:ORBit_demarshal_object
477    fun:*
478    fun:*
479    fun:gconf_activate_server
480 }
481
482 # Some libORBit/bonobo initialisation stuff
483 {
484    <bonobo init>
485    Memcheck:Leak
486    fun:malloc
487    fun:g_malloc
488    fun:ORBit_alloc_string
489    fun:CORBA_string_dup
490    fun:Bonobo_ActivationEnvValue_set
491    fun:bonobo_activation_init_activation_env
492    fun:bonobo_activation_orb_init
493    fun:bonobo_activation_init
494 }
495 {
496    <bonobo init>
497    Memcheck:Leak
498    fun:calloc
499    fun:g_malloc0
500    fun:ORBit_alloc*
501    fun:ORBit_small_alloc*
502    obj:/usr/lib/libORBit-2.so*
503    fun:PortableServer_POA_servant_to_reference
504    obj:/usr/lib/libbonobo-2.so*
505 }
506 {
507    <bonobo init>
508    Memcheck:Leak
509    fun:calloc
510    fun:g_malloc0
511    fun:ORBit_alloc_tcval
512    fun:ORBit_small_allocbuf
513    fun:ORBit_adaptor_setup
514    obj:/usr/lib/libORBit-2.so*
515    fun:ORBit_POA_setup_root
516    fun:ORBit_init_internals
517    fun:CORBA_ORB_init
518 }
519 {
520    <bonobo init - more recent variant of above>
521    Memcheck:Leak
522    fun:calloc
523    fun:g_malloc0
524    fun:ORBit_alloc_tcval
525    fun:ORBit_adaptor_setup
526    fun:*
527    fun:ORBit_POA_setup_root
528    fun:ORBit_init_internals
529    fun:CORBA_ORB_init
530 }
531 {
532    <bonobo init>
533    Memcheck:Leak
534    fun:calloc
535    fun:g_malloc0
536    fun:ORBit_alloc*
537    fun:ORBit_small_allocbuf
538    fun:bonobo_activation_init_activation_env
539    fun:bonobo_activation_orb_init
540    fun:bonobo_activation_init
541 }
542
543 # More GConf stuff from the FC5 buildbot, mostly variations on the
544 # above stack traces
545 {
546    <incompletely initialised ORBit buffer>
547    Memcheck:Param
548    writev(vector[...])
549    fun:writev
550    obj:/usr/lib/libORBit-2.so*
551    fun:link_connection_writev
552    fun:giop_send_buffer_write
553    obj:/usr/lib/libORBit-2.so*
554    fun:ORBit_small_invoke_stub
555    fun:ORBit_small_invoke_stub_n
556    fun:ORBit_c_stub_invoke
557    fun:ConfigServer_ping
558    fun:gconf_activate_server
559    obj:/usr/lib/libgconf-2.so*
560    obj:/usr/lib/libgconf-2.so*
561    fun:gconf_engine_get_default
562 }
563 {
564    <gconf init>
565    Memcheck:Leak
566    fun:calloc
567    fun:g_malloc0
568    fun:ORBit_alloc*
569    fun:ORBit_small_alloc*
570    obj:/usr/lib/libORBit-2.so*
571    fun:PortableServer_POA_servant_to_reference
572    obj:/usr/lib/libgconf-2.so*
573    obj:/usr/lib/libgconf-2.so*
574    obj:/usr/lib/libgconf-2.so*
575    fun:gconf_engine_get_default
576 }
577 {
578    <gconf init>
579    Memcheck:Leak
580    fun:calloc
581    fun:g_malloc0
582    fun:ORBit_alloc*
583    fun:ORBit_small_alloc
584    obj:/usr/lib/libORBit-2.so*
585    fun:ORBit_demarshal_IOR
586    fun:ORBit_demarshal_object
587    fun:CORBA_ORB_string_to_object
588    obj:/usr/lib/libgconf-2.so*
589    fun:gconf_get_current_lock_holder
590    fun:gconf_activate_server
591    obj:/usr/lib/libgconf-2.so*
592    obj:/usr/lib/libgconf-2.so*
593    fun:gconf_engine_get_default
594 }
595 {
596    <gconf init>
597    Memcheck:Leak
598    fun:calloc
599    fun:g_malloc0
600    fun:ORBit_alloc*
601    fun:ORBit_small_alloc*
602    obj:/usr/lib/libORBit-2.so*
603    fun:ORBit_demarshal_IOR
604    fun:ORBit_demarshal_object
605    fun:CORBA_ORB_string_to_object
606    obj:/usr/lib/libgconf-2.so*
607    fun:gconf_get_current_lock_holder
608    fun:gconf_activate_server
609    obj:/usr/lib/libgconf-2.so*
610    obj:/usr/lib/libgconf-2.so*
611    fun:gconf_engine_get_default
612 }
613 {
614    <bonobo init>
615    Memcheck:Leak
616    fun:calloc
617    fun:g_malloc0
618    fun:ORBit_alloc*
619    fun:ORBit_small_alloc*
620    obj:/usr/lib/libORBit-2.so*
621    fun:ORBit_demarshal_IOR
622    fun:ORBit_demarshal_object
623    fun:ORBit_demarshal_value
624    obj:/usr/lib/libORBit-2.so*
625    fun:ORBit_small_invoke_stub
626    fun:ORBit_small_invoke_stub_n
627    fun:ORBit_c_stub_invoke
628    fun:ConfigServer_get_default_database
629    obj:/usr/lib/libgconf-2.so*
630    fun:gconf_engine_get_default
631 }
632 {
633    <gconf init>
634    Memcheck:Leak
635    fun:calloc
636    fun:g_malloc0
637    fun:ORBit_alloc*
638    fun:ORBit_small_alloc*
639    obj:/usr/lib/libORBit-2.so*
640    fun:ORBit_OAObject_object_to_objkey
641    fun:IOP_generate_profiles
642    fun:ORBit_marshal_object
643    fun:ORBit_marshal_value
644    obj:/usr/lib/libORBit-2.so*
645    fun:ORBit_small_invoke_stub
646    fun:ORBit_small_invoke_stub_n
647    fun:ORBit_c_stub_invoke
648    fun:ConfigServer_add_client
649    obj:/usr/lib/libgconf-2.so*
650    obj:/usr/lib/libgconf-2.so*
651    fun:gconf_engine_get_default
652 }
653 {
654    <GLib caching the home dir>
655    Memcheck:Leak
656    fun:malloc
657    obj:*libc-*.so
658    fun:__nss_database_lookup
659    obj:*
660    obj:*
661    fun:getpwnam_r
662    obj:/usr/lib*/libglib-2.0.so.*
663    fun:g_get_home_dir
664 }
665 {
666    <GLib caching the user name>
667    Memcheck:Leak
668    fun:malloc
669    obj:*libc-*.so
670    fun:__nss_database_lookup
671    obj:*
672    obj:*
673    fun:getpwnam_r
674    obj:/usr/lib*/libglib-2.0.so.*
675    fun:g_get_user_name
676 }
677 {
678    <GLib caching the tmp dir>
679    Memcheck:Leak
680    fun:malloc
681    obj:*libc-*.so
682    fun:__nss_database_lookup
683    obj:*
684    obj:*
685    fun:getpwnam_r
686    obj:/usr/lib*/libglib-2.0.so.*
687    fun:g_get_tmp_dir
688 }
689
690 {
691    <GLib caching the host name>
692    Memcheck:Leak
693    fun:malloc
694    obj:*libc-*.so
695    fun:__nss_database_lookup
696    obj:*
697    obj:*
698    fun:getpwnam_r
699    obj:/usr/lib*/libglib-2.0.so.0.*
700    fun:g_get_host_name
701 }
702
703
704 ## Some Fontconfig errors.
705 {
706    <First time load of a font - feisty x86_64>
707    Memcheck:Leak
708    fun:malloc
709    fun:FcPatternObjectInsertElt
710    fun:FcPatternObjectAddWithBinding
711    fun:FcPatternAppend
712    fun:FcEndElement
713    obj:/usr/lib/libexpat.so.*
714    obj:/usr/lib/libexpat.so.*
715    obj:/usr/lib/libexpat.so.*
716    obj:/usr/lib/libexpat.so.*
717    fun:XML_ParseBuffer
718    fun:FcConfigParseAndLoad
719    fun:FcConfigParseAndLoad
720    fun:FcParseInclude
721    fun:FcEndElement
722    obj:/usr/lib/libexpat.so.*
723    obj:/usr/lib/libexpat.so.*
724    obj:/usr/lib/libexpat.so.*
725    obj:/usr/lib/libexpat.so.*
726    fun:XML_ParseBuffer
727    fun:FcConfigParseAndLoad
728 }
729 {
730    <First time load of a font - generic>
731    Memcheck:Leak
732    fun:*alloc
733    ...
734    fun:FcInitLoadConfig
735 }
736
737 ## Leaks in ALSA (variations of leak from snd_config_load1)
738
739 {
740    <Alsa leak>
741    Memcheck:Leak
742    fun:calloc
743    fun:_snd_config_make
744    fun:_snd_config_make_add
745    fun:*
746    fun:*
747    fun:*
748    fun:*
749    fun:snd_config_load1
750 }
751
752 {
753    <Alsa leak>
754    Memcheck:Leak
755    fun:calloc
756    fun:_snd_config_make
757    fun:_snd_config_make_add
758    fun:*
759    fun:*
760    fun:snd_config_load1
761 }
762 {
763    <Alsa leak>
764    Memcheck:Leak
765    fun:calloc
766    fun:_snd_config_make
767    fun:_snd_config_make_add
768    fun:*
769    fun:*
770    fun:*
771    fun:snd_config_load1
772 }
773 {
774    <Alsa leak>
775    Memcheck:Leak
776    fun:calloc
777    fun:_snd_config_make
778    fun:_snd_config_make_add
779    fun:*
780    fun:*
781    fun:*
782    fun:*
783    fun:*
784    fun:snd_config_load1
785 }
786
787 {
788    <Alsa leak>
789    Memcheck:Leak
790    fun:calloc
791    fun:_snd_config_make
792    fun:_snd_config_make_add
793    fun:*
794    fun:*
795    fun:*
796    fun:*
797    fun:*
798    fun:*
799    fun:snd_config_load1
800 }
801
802 {
803    <Alsa leak>
804    Memcheck:Leak
805    fun:calloc
806    fun:_snd_config_make
807    fun:_snd_config_make_add
808    fun:*
809    fun:*
810    fun:*
811    fun:*
812    fun:*
813    fun:*
814    fun:*
815    fun:snd_config_load1
816 }
817 {
818    <Alsa leak>
819    Memcheck:Leak
820    fun:calloc
821    fun:_snd_config_make
822    fun:_snd_config_make_add
823    fun:*
824    fun:*
825    fun:*
826    fun:*
827    fun:*
828    fun:*
829    fun:*
830    fun:*
831    fun:snd_config_load1
832 }
833
834 {
835    <Alsa leak>
836    Memcheck:Leak
837    fun:malloc
838    fun:snd1_dlobj_cache_add
839    fun:snd_ctl_open_noupdate
840 }
841
842 {
843    <Alsa leak>
844    Memcheck:Leak
845    fun:malloc
846    fun:*
847    fun:snd1_dlobj_cache_add
848    fun:snd_ctl_open_noupdate
849 }
850
851 {
852    <Alsa leak>
853    Memcheck:Leak
854    fun:*alloc
855    fun:*
856    fun:*
857    fun:*
858    fun:snd_config_load1
859 }
860
861 {
862    <Alsa leak>
863    Memcheck:Leak
864    fun:*alloc
865    fun:*
866    fun:*
867    fun:*
868    fun:*
869    fun:snd_config_load1
870 }
871
872 {
873    <Alsa leak>
874    Memcheck:Leak
875    fun:*alloc
876    fun:*
877    fun:*
878    fun:*
879    fun:*
880    fun:*
881    fun:snd_config_load1
882 }
883
884 {
885    <Alsa leak>
886    Memcheck:Leak
887    fun:*alloc
888    fun:*
889    fun:*
890    fun:*
891    fun:*
892    fun:*
893    fun:*
894    fun:snd_config_load1
895 }
896
897 {
898    <Alsa leak>
899    Memcheck:Leak
900    fun:*alloc
901    fun:*
902    fun:*
903    fun:*
904    fun:*
905    fun:*
906    fun:*
907    fun:*
908    fun:snd_config_load1
909 }
910
911 {
912    <Alsa leak>
913    Memcheck:Leak
914    fun:*alloc
915    fun:*
916    fun:*
917    fun:*
918    fun:*
919    fun:*
920    fun:*
921    fun:*
922    fun:*
923    fun:snd_config_load1
924 }
925
926 {
927    <Alsa leak>
928    Memcheck:Leak
929    fun:*alloc
930    fun:*
931    fun:*
932    fun:*
933    fun:*
934    fun:*
935    fun:*
936    fun:*
937    fun:*
938    fun:*
939    fun:snd_config_load1
940 }
941
942 {
943    <Alsa leak>
944    Memcheck:Leak
945    fun:*alloc
946    fun:*
947    fun:*
948    fun:*
949    fun:*
950    fun:*
951    fun:*
952    fun:*
953    fun:*
954    fun:*
955    fun:*
956    fun:snd_config_load1
957 }
958
959
960 # The following are leaks of caps that need to be created dynamically
961 # in the type registration of the plugin (used for pad templates).
962
963 {
964    <Leak in ogmparsers>
965    Memcheck:Leak
966    fun:malloc
967    fun:g_malloc
968    fun:g_slice_alloc
969    fun:gst_caps_new_empty
970    fun:gst_caps_new_simple
971    fun:*
972    fun:g_type_class_ref
973    fun:gst_element_register
974 }
975
976 {
977    <Leak in ogmparsers>
978    Memcheck:Leak
979    fun:malloc
980    fun:g_malloc
981    fun:g_slice_alloc
982    fun:gst_caps_new_empty
983    fun:*
984    fun:*
985    fun:g_type_class_ref
986    fun:gst_element_register
987    fun:gst_ogm_parse_plugin_init
988    fun:plugin_init
989 }
990
991 {
992    <Leak in videotestsrc>
993    Memcheck:Leak
994    fun:malloc
995    fun:g_malloc
996    fun:g_slice_alloc
997    fun:gst_caps_new_empty
998    fun:gst_caps_copy
999    fun:gst_video_test_src_base_init
1000    fun:g_type_class_ref
1001    fun:gst_element_register
1002 }
1003
1004 {
1005    <Leak in videotestsrc>
1006    Memcheck:Leak
1007    fun:malloc
1008    fun:g_malloc
1009    fun:g_slice_alloc
1010    fun:gst_caps_new_empty
1011    fun:gst_caps_copy
1012    fun:gst_video_test_src_getcaps
1013    fun:gst_video_test_src_base_init
1014    fun:g_type_class_ref
1015    fun:gst_element_register
1016 }
1017
1018 {
1019    <Leak in ffmpegcolorspace>
1020    Memcheck:Leak
1021    fun:malloc
1022    fun:g_malloc
1023    fun:g_slice_alloc
1024    fun:gst_caps_new_empty
1025    fun:gst_ffmpegcsp_codectype_to_caps
1026    fun:gst_ffmpegcolorspace_register
1027    fun:plugin_init
1028 }
1029
1030 {
1031    <Leak in ffmpegocolorspace>
1032    Memcheck:Leak
1033    fun:malloc
1034    fun:g_malloc
1035    fun:g_slice_alloc
1036    fun:gst_caps_new_empty
1037    fun:gst_caps_copy
1038    fun:gst_ffmpegcolorspace_register
1039    fun:plugin_init
1040 }
1041
1042 {
1043    <Leak in gstffmpegdemux>
1044    Memcheck:Leak
1045    fun:malloc
1046    fun:g_malloc
1047    fun:g_slice_alloc
1048    fun:gst_caps_new_empty
1049    fun:gst_caps_new_any
1050    fun:gst_ffmpegdemux_register
1051    fun:plugin_init
1052 }
1053
1054 {
1055    <Leak in GstAudioFilter subclasses>
1056    Memcheck:Leak
1057    fun:malloc
1058    fun:g_malloc
1059    fun:g_slice_alloc
1060    fun:gst_caps_new_empty
1061    fun:gst_caps_copy
1062    fun:gst_audio_filter_class_add_pad_templates
1063 }
1064
1065 {
1066    <Leak in GstAudioFilter subclasses, variant>
1067    Memcheck:Leak
1068    fun:realloc
1069    fun:g_realloc
1070    fun:g_ptr_array_maybe_expand
1071    fun:g_ptr_array_add
1072    fun:gst_caps_append
1073    fun:gst_audio_filter_class_add_pad_templates
1074 }
1075
1076 {
1077    <Leak in GstAudioFilter subclasses, variant>
1078    Memcheck:Leak
1079    fun:malloc
1080    fun:realloc
1081    fun:g_realloc
1082    fun:g_ptr_array_maybe_expand
1083    fun:g_ptr_array_add
1084    fun:gst_caps_append
1085    fun:gst_audio_filter_class_add_pad_templates
1086 }
1087
1088 {
1089    <Leak in GstAudioFilter subclasses, variant>
1090    Memcheck:Leak
1091    fun:malloc
1092    fun:realloc
1093    fun:g_realloc
1094    fun:g_ptr_array_maybe_expand
1095    fun:g_ptr_array_add
1096    fun:gst_caps_copy
1097    fun:gst_audio_filter_class_add_pad_templates
1098 }
1099
1100 {
1101    <Leak in GstAudioFilter subclasses, variant2>
1102    Memcheck:Leak
1103    fun:malloc
1104    fun:g_malloc
1105    fun:g_slice_alloc
1106    fun:g_ptr_array_sized_new
1107    fun:gst_caps_new_empty
1108    fun:gst_caps_copy
1109    fun:gst_audio_filter_class_add_pad_templates
1110 }
1111 {
1112    <Leak in GstAudioFilter subclasses, variant3>
1113    Memcheck:Leak
1114    fun:malloc
1115    fun:realloc
1116    fun:g_realloc
1117    fun:g_array_maybe_expand
1118    fun:g_array_sized_new
1119    fun:*
1120    fun:*
1121    fun:*
1122    fun:gst_value_init_and_copy
1123    fun:gst_structure_copy
1124    fun:gst_caps_copy
1125    fun:gst_audio_filter_class_add_pad_templates
1126 }
1127 {
1128    <Leak in GstAudioFilter subclasses, variant4>
1129    Memcheck:Leak
1130    fun:malloc
1131    fun:realloc
1132    fun:g_realloc
1133    fun:g_array_maybe_expand
1134    fun:g_array_sized_new
1135    fun:*
1136    fun:gst_structure_copy
1137    fun:gst_caps_copy
1138    fun:gst_audio_filter_class_add_pad_templates
1139 }
1140 {
1141    <Leak in GstAudioFilter subclasses, variant5>
1142    Memcheck:Leak
1143    fun:malloc
1144    fun:g_malloc
1145    fun:g_slice_alloc
1146    fun:g_array_sized_new
1147    fun:*
1148    fun:gst_structure_copy
1149    fun:gst_caps_copy
1150    fun:gst_audio_filter_class_add_pad_templates
1151 }
1152
1153 {
1154    <Leak in riff-media>
1155    Memcheck:Leak
1156    fun:malloc
1157    fun:g_malloc
1158    fun:g_slice_alloc
1159    fun:gst_caps_new_empty
1160    fun:gst_riff_create_*_template_caps
1161 }
1162 {
1163    <Leak in riff-media>
1164    Memcheck:Leak
1165    fun:malloc
1166    fun:realloc
1167    fun:g_realloc
1168    fun:*
1169    fun:*
1170    fun:*
1171    fun:gst_structure_copy
1172    fun:gst_caps_copy
1173    fun:gst_caps_append
1174    fun:gst_riff_create_*_template_caps
1175 }
1176 {
1177    <Leak in riff-media>
1178    Memcheck:Leak
1179    fun:malloc
1180    fun:g_malloc
1181    fun:g_slice_alloc
1182    fun:g_array_sized_new
1183    fun:*
1184    fun:gst_structure_copy
1185    fun:gst_caps_copy
1186    fun:gst_caps_append
1187    fun:gst_riff_create_*_template_caps
1188 }
1189
1190 ## Leaks in pango (bilboed: gentoo unstable amd64)
1191
1192 {
1193    <Pango leak - generic>
1194    Memcheck:Leak
1195    fun:*alloc
1196    ...
1197    fun:pango_layout_get_pixel_extents
1198 }
1199 {
1200    <insert a suppression name here>
1201    Memcheck:Leak
1202    fun:calloc
1203    fun:g_malloc0
1204    fun:pango_language_from_string
1205    fun:pango_language_get_default
1206    fun:pango_context_init
1207    fun:g_type_create_instance
1208    fun:g_object_constructor
1209    fun:g_object_newv
1210    fun:g_object_new_valist
1211    fun:g_object_new
1212    fun:pango_font_map_create_context
1213 }
1214
1215 {
1216    <PangoLanguage can never be freed>
1217    Memcheck:Leak
1218    fun:calloc
1219    fun:g_malloc0
1220    fun:pango_language_from_string
1221 }
1222
1223
1224 ## Leak of everything allocated by gst-libav plugin init
1225 {
1226    <insert_a_suppression_name_here>
1227    Memcheck:Leak
1228    fun:*alloc
1229    ...
1230    fun:gst_ffmpeg_cfg_init
1231 }
1232
1233 ## Leak of GIO module through gnomevfs
1234
1235 {
1236    <gio leak>
1237    Memcheck:Leak
1238    fun:malloc
1239    fun:g_malloc
1240    fun:*
1241    fun:*
1242    fun:g_type_create_instance
1243    fun:*
1244    fun:*
1245    fun:*
1246    fun:*
1247    fun:g_io_module_new
1248    fun:g_io_modules_load_all_in_directory
1249    fun:*
1250    fun:get_default_vfs
1251 }
1252
1253 ## Conditional jump in getaddrinfo (bilboed, gentoo ~amd64, Dec 13 2008)
1254 {
1255    <Leak of addrinfo in esd>
1256    Memcheck:Cond
1257    fun:gaih_inet
1258    fun:getaddrinfo
1259 }
1260
1261 ## Dynamic pad templates in mxfmux
1262 {
1263    <Dynamic pad templates in mxfmux>
1264    Memcheck:Leak
1265    fun:malloc
1266    fun:g_malloc
1267    fun:g_slice_alloc
1268    fun:gst_caps_new_empty
1269    fun:gst_caps_from_string
1270    fun:mxf_*_init
1271    fun:plugin_init
1272 }
1273
1274 ## We don't know if ffmpeg frees this or not and better pass a copy for safety
1275 {
1276    <insert a suppression name here>
1277    Memcheck:Leak
1278    fun:malloc
1279    fun:g_malloc
1280    fun:g_strdup
1281    fun:gst_ffmpeg_cfg_fill_context
1282    fun:gst_ffmpegenc_setcaps
1283    fun:gst_pad_set_caps
1284 }
1285
1286 {
1287    <glibc-2.10 overreads/conditionals>
1288    Memcheck:Value8
1289    obj:/lib*/libc-2.10.*.so
1290    obj:/lib*/libc-2.10.*.so
1291    fun:_vgnU_freeres
1292 }
1293 {
1294    <glibc-2.10 overreads/conditionals>
1295    Memcheck:Cond
1296    obj:/lib*/libc-2.10.*.so
1297    obj:/lib*/libc-2.10.*.so
1298    fun:_vgnU_freeres
1299 }
1300 {
1301    <glibc-2.10 mysterious invalid free on exit>
1302    Memcheck:Free
1303    fun:free
1304    obj:/lib*/libc-2.10.*.so
1305    obj:/lib*/libc-2.10.*.so
1306    fun:_vgnU_freeres
1307 }
1308
1309 # glibc-2.10 dl overreads
1310
1311 {
1312    <glibc-2.10 overreads/conditionals>
1313    Memcheck:Cond
1314    fun:__tls*
1315    obj:*
1316    obj:*
1317    fun:_vgnU_freeres
1318 }
1319
1320 {
1321    <glibc-2.10 overreads/conditionals>
1322    Memcheck:Param
1323    arch_prctl(arg2)
1324    fun:init_tls
1325 }
1326
1327 # GModule issues with glibc-2.10
1328 {
1329    <glibc-2.10 GLIB leaks>
1330    Memcheck:Value8
1331    fun:g_module_*
1332    fun:gst_plugin*
1333 }
1334 {
1335    <glibc-2.10 GLIB leaks>
1336    Memcheck:Value8
1337    fun:*
1338    fun:g_module_*
1339    fun:gst_plugin*
1340 }
1341
1342 # Leak in GSlice
1343 {
1344    <insert a suppression name here>
1345    Memcheck:Value8
1346    fun:g_parse_debug_string
1347    fun:slice_config_init
1348    fun:g_slice_init_nomessage
1349    fun:_g_slice_thread_init_nomessage
1350    fun:g_thread_init_glib
1351 }
1352
1353 # 2.10 pthread issues
1354 {
1355    <insert a suppression name here>
1356    Memcheck:Value8
1357    fun:__pthread_initialize_minimal
1358 }
1359
1360 # glib type leaks
1361 {
1362    <insert_a_suppression_name_here>
1363    Memcheck:Leak
1364    fun:*alloc
1365    ...
1366    fun:g_type_register_static
1367 }
1368
1369 # new registry system
1370 # all of this will only be created once when loading registry.
1371
1372 {
1373    <insert_a_suppression_name_here>
1374    Memcheck:Leak
1375    fun:*alloc
1376    ...
1377    fun:_priv_gst_registry_chunks_load_plugin
1378 }
1379
1380 # system-wide tags
1381 # these tags are registered once
1382
1383 {
1384    <insert_a_suppression_name_here>
1385    Memcheck:Leak
1386    fun:*alloc
1387    fun:*
1388    fun:*
1389    fun:gst_tag_register
1390    fun:_gst_tag_initialize
1391 }
1392
1393 # system-wide tags
1394 # these tags are registered once
1395
1396 {
1397    <insert_a_suppression_name_here>
1398    Memcheck:Leak
1399    fun:*alloc
1400    ...
1401    fun:gst_tag_register_static
1402 }
1403
1404 # system-wide type classes that we keep referenced
1405
1406 {
1407    <g_type_class_ref leaks>
1408    Memcheck:Leak
1409    fun:*alloc
1410    ...
1411    fun:g_type_class_ref
1412 }
1413
1414 # leaking cached queries which are only initialized once
1415 {
1416    <insert_a_suppression_name_here>
1417    Memcheck:Leak
1418    fun:*alloc
1419    ...
1420    fun:_gst_query_initialize
1421    fun:init_post
1422 }
1423
1424 # macosx (leopard) library loader leak
1425 {
1426    <insert_a_suppression_name_here>
1427    Memcheck:Leak
1428    fun:_Znwm
1429    fun:_ZNSs4_Rep9_S_createEmmRKSaIcE
1430    fun:_ZNSs12_S_constructIPKcEEPcT_S3_RKSaIcESt20forward_iterator_tag
1431    fun:_ZNSsC2EPKcRKSaIcE
1432    fun:_Z41__static_initialization_and_destruction_0ii
1433    fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE
1434 }
1435
1436 # GObject type registration
1437 {
1438    <insert_a_suppression_name_here>
1439    Memcheck:Leak
1440    fun:*alloc
1441    ...
1442    fun:_g_atomic_array_copy
1443 }
1444
1445 {
1446    <getdelim one-time inits called from libselinux>
1447    Memcheck:Leak
1448    fun:*alloc
1449    fun:getdelim
1450    obj:*libselinux*
1451 }
1452
1453 {
1454    <weird one when re-reading registry>
1455    Memcheck:Leak
1456    fun:*alloc
1457    ...
1458    obj:*/sed
1459 }
1460
1461 {
1462    <weird one when re-reading registry>
1463    Memcheck:Addr8
1464    ...
1465    obj:*/sed
1466 }
1467
1468 # GLib 2.23 interface vtable
1469 {
1470    <insert_a_suppression_name_here>
1471    Memcheck:Leak
1472    fun:*alloc
1473    ...
1474    fun:g_type_add_interface_static
1475 }
1476
1477 {
1478    <leak in dash on debian sid>
1479    Memcheck:Leak
1480    fun:*alloc
1481    obj:*/dash
1482 }
1483
1484 # libtool/gentoo fake leak
1485 # it actually runs bash and valgrind complains
1486 {
1487    <insert_a_suppression_name_here>
1488    Memcheck:Leak
1489    fun:*alloc
1490    obj:/bin/bash
1491 }
1492
1493 {
1494    <ignore possbly-lost leaks in the plugin scanner which doesn't clean up properly>
1495    Memcheck:Leak
1496    fun:*alloc
1497    ...
1498    fun:_gst_plugin_loader_client_run
1499    fun:main
1500 }
1501
1502 {
1503    <warning with libc 2.13-2 as in Debian/unstable on amd64>
1504    Memcheck:Cond
1505    fun:*strcasecmp*
1506    ...
1507    fun:__dcigettext
1508 }
1509
1510 {
1511    <warning with libc 2.13-2 as in Debian/unstable on amd64>
1512    Memcheck:Value8
1513    fun:*strcasecmp*
1514    ...
1515    fun:__dcigettext
1516 }
1517
1518 {
1519    <GstSystemClock is a singleton and does not leak>
1520    Memcheck:Leak
1521    fun:malloc
1522    ...
1523    fun:gst_poll_new
1524    fun:gst_poll_new_timer
1525    fun:gst_system_clock_init
1526 }
1527
1528 {
1529    <glib types are singletons>
1530    Memcheck:Leak
1531    fun:calloc
1532    ...
1533    fun:gobject_init_ctor
1534 }
1535
1536 {
1537    <quark table is leaked on purpose if it grows too big>
1538    Memcheck:Leak
1539    fun:malloc
1540    ...
1541    fun:g_quark_from*_string
1542 }
1543
1544 {
1545   <timer_create suppressions for earlier valgrind versions that complain>
1546   Memcheck:Param
1547   timer_create(evp)
1548   fun:timer_create@@GLIBC_2.3.3
1549 }
1550
1551 {
1552    closures aren't valgrind friendly (bgo#739850)
1553    Memcheck:Leak
1554    fun:calloc
1555    ...
1556    fun:g_cclosure_new
1557 }
1558
1559 {
1560    closures aren't valgrind friendly (bgo#739850)
1561    Memcheck:Leak
1562    fun:malloc
1563    ...
1564    fun:g_closure_add_invalidate_notifier
1565 }
1566
1567 {
1568    closures aren't valgrind friendly (bgo#739850)
1569    Memcheck:Leak
1570    fun:calloc
1571    ...
1572    fun:g_closure_new_simple
1573 }
1574
1575 {
1576    glib/giomodules2 (from libsoup.supp)
1577    Memcheck:Leak
1578    ...
1579    fun:_g_io_module_get_default
1580 }
1581
1582 {
1583    <valgrind bug when trying to parse "infinity" from "interleaved">
1584    Memcheck:Addr8
1585    fun:__GI___strncasecmp_l
1586    fun:____strtod_l_internal
1587    fun:gst_value_deserialize_double
1588 }
1589
1590 {
1591    <glibc overreads/conditionals>
1592    Memcheck:Addr8
1593    fun:do_lookup_x
1594 }
1595
1596 {
1597    <quark tables are leaked on purpose when they are expanded, observed with glib 2.46 and gst-rtsp-server tests>
1598    Memcheck:Leak
1599    fun:malloc
1600    ...
1601    fun:g_quark_init
1602 }
1603
1604 {
1605    Leak of debug function list
1606    Memcheck:Leak
1607    fun:*alloc
1608    ...
1609    fun:g_slist_prepend
1610    fun:gst_debug_add_log_function
1611 }
1612 {
1613    <We do not care about anything ld related, and don't use library constructors>
1614    Memcheck:Addr1
1615    ...
1616    obj:*/ld-*.so
1617    ...
1618 }
1619 {
1620    <We do not care about anything ld related, and don't use library constructors>
1621    Memcheck:Addr2
1622    ...
1623    obj:*/ld-*.so
1624    ...
1625 }
1626 {
1627    <We do not care about anything ld related, and don't use library constructors>
1628    Memcheck:Addr4
1629    ...
1630    obj:*/ld-*.so
1631    ...
1632 }
1633 {
1634    <We do not care about anything ld related, and don't use library constructors>
1635    Memcheck:Addr8
1636    ...
1637    obj:*/ld-*.so
1638    ...
1639 }
1640 {
1641    <We do not care about anything ld related, and don't use library constructors>
1642    Memcheck:Leak
1643    ...
1644    obj:*/ld-*.so
1645    ...
1646 }
1647 {
1648    <We do not care about anything ld related, and don't use library constructors>
1649    Memcheck:Cond
1650    ...
1651    obj:*/ld-*.so
1652    ...
1653 }