Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
pipewire
pipewire
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 183
    • Issues 183
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 5
    • Merge Requests 5
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • PipeWire
  • pipewirepipewire
  • Issues
  • #497

Closed
Open
Opened Dec 21, 2020 by Mauricio Collares@collaresContributor

Test failures with AddressSanitizer

Adding b_sanitize=address (or b_sanitize=address,undefined) to default_options in meson.build makes some tests fail. I didn't try to run pipewire itself.

--- command ---
17:16:26 SPA_PLUGIN_DIR='/build/pipewire/build/spa/plugins/' /build/pipewire/build/spa/plugins/audioconvert/test-fmt-ops
--- Listing only the last 100 lines from a long log. ---
[removed]
test test_s24_32d_f32d:

=================================================================
==6146==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 80 byte(s) in 1 object(s) allocated from:
    #0 0x7ffff76a980e in __interceptor_calloc (/nix/store/7in2alrzhkpcax5fk4823ismvsmdk1aj-gcc-9.3.0-lib/lib/libasan.so.5+0x10a80e)
    #1 0x405987 in load_handle.constprop.0 (/build/pipewire/build/spa/plugins/audioconvert/test-fmt-ops+0x405987)
    #2 0x40254d in main (/build/pipewire/build/spa/plugins/audioconvert/test-fmt-ops+0x40254d)
    #3 0x7ffff73dbdbc in __libc_start_main (/nix/store/9l06v7fc38c1x3r2iydl15ksgz0ysb82-glibc-2.32/lib/libc.so.6+0x23dbc)

SUMMARY: AddressSanitizer: 80 byte(s) leaked in 1 allocation(s).
-------

 5/21 test-resample           FAIL           1.34s (exit status 1)

--- command ---
17:16:26 SPA_PLUGIN_DIR='/build/pipewire/build/spa/plugins/' /build/pipewire/build/spa/plugins/audioconvert/test-resample
--- Listing only the last 100 lines from a long log. ---
[removed]
499: 997 941 1024 1024 996
[D][resample-native.c:385 resample_native_init()] native 0x7fffffff8e00: q:4 in:160 out:147 n_taps:64 n_phases:294 features:00000000:00000000
=================================================================
==6151==ERROR: AddressSanitizer: dynamic-stack-buffer-overflow on address 0x7fffffff8c40 at pc 0x000000402bff bp 0x7fffffff69c0 sp 0x7fffffff69b8
READ of size 4 at 0x7fffffff8c40 thread T0
    #0 0x402bfe in do_resample_full_c (/build/pipewire/build/spa/plugins/audioconvert/test-resample+0x402bfe)
    #1 0x4036e7 in impl_native_process (/build/pipewire/build/spa/plugins/audioconvert/test-resample+0x4036e7)
    #2 0x4024e8 in pull_blocks.constprop.0 (/build/pipewire/build/spa/plugins/audioconvert/test-resample+0x4024e8)
    #3 0x4018bc in main (/build/pipewire/build/spa/plugins/audioconvert/test-resample+0x4018bc)
    #4 0x7ffff729ddbc in __libc_start_main (/nix/store/9l06v7fc38c1x3r2iydl15ksgz0ysb82-glibc-2.32/lib/libc.so.6+0x23dbc)
    #5 0x401ae9 in _start (/build/pipewire/build/spa/plugins/audioconvert/test-resample+0x401ae9)

Address 0x7fffffff8c40 is located in stack of thread T0 at offset 8512 in frame
    #0 0x4033df in impl_native_process (/build/pipewire/build/spa/plugins/audioconvert/test-resample+0x4033df)

  This frame has 2 object(s):
    [48, 52) 'in' (line 222)
    [64, 68) 'out' (line 222) <== Memory access at offset 8512 overflows this variable
HINT: this may be a false positive if your program uses some custom stack unwind mechanism, swapcontext or vfork
      (longjmp and C++ exceptions *are* supported)
SUMMARY: AddressSanitizer: dynamic-stack-buffer-overflow (/build/pipewire/build/spa/plugins/audioconvert/test-resample+0x402bfe) in do_resample_full_c
Shadow bytes around the buggy address:
  0x10007fff7130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10007fff7140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10007fff7150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10007fff7160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
  0x10007fff7170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
=>0x10007fff7180: 00 00 00 00 00 00 00 00[cb]cb cb cb 00 00 00 00
  0x10007fff7190: 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1 04 f2
  0x10007fff71a0: 04 f2 00 f2 f2 f2 00 f3 f3 f3 00 00 00 00 00 00
  0x10007fff71b0: 00 00 00 00 00 00 00 00 00 00 00 00 f1 f1 f1 f1
  0x10007fff71c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 f2 f2 f2
  0x10007fff71d0: f2 f2 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f8 f3
Shadow byte legend (one shadow byte represents 8 application bytes):
  Addressable:           00
  Partially addressable: 01 02 03 04 05 06 07 
  Heap left redzone:       fa
  Freed heap region:       fd
  Stack left redzone:      f1
  Stack mid redzone:       f2
  Stack right redzone:     f3
  Stack after return:      f5
  Stack use after scope:   f8
  Global redzone:          f9
  Global init order:       f6
  Poisoned by user:        f7

  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
  Shadow gap:              cc
==6151==ABORTING
-------

12/21 pw-test-protocol-native FAIL           0.08s (exit status 1)

--- command ---
17:16:26 SPA_PLUGIN_DIR='/build/pipewire/build/spa/plugins/' PIPEWIRE_MODULE_DIR='/build/pipewire/build/src/modules/' /build/pipewire/build/src/modules/pw-test-protocol-native
--- stderr ---

=================================================================
==6164==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 8464 byte(s) in 1 object(s) allocated from:
    #0 0x7ffff76a980e in __interceptor_calloc (/nix/store/7in2alrzhkpcax5fk4823ismvsmdk1aj-gcc-9.3.0-lib/lib/libasan.so.5+0x10a80e)
    #1 0x411bc2 in pw_protocol_native_connection_new (/build/pipewire/build/src/modules/pw-test-protocol-native+0x411bc2)
    #2 0x402459 in main (/build/pipewire/build/src/modules/pw-test-protocol-native+0x402459)
    #3 0x7ffff714edbc in __libc_start_main (/nix/store/9l06v7fc38c1x3r2iydl15ksgz0ysb82-glibc-2.32/lib/libc.so.6+0x23dbc)

Indirect leak of 32768 byte(s) in 1 object(s) allocated from:
    #0 0x7ffff76a980e in __interceptor_calloc (/nix/store/7in2alrzhkpcax5fk4823ismvsmdk1aj-gcc-9.3.0-lib/lib/libasan.so.5+0x10a80e)
    #1 0x411cf3 in pw_protocol_native_connection_new (/build/pipewire/build/src/modules/pw-test-protocol-native+0x411cf3)
    #2 0x402459 in main (/build/pipewire/build/src/modules/pw-test-protocol-native+0x402459)
    #3 0x7ffff714edbc in __libc_start_main (/nix/store/9l06v7fc38c1x3r2iydl15ksgz0ysb82-glibc-2.32/lib/libc.so.6+0x23dbc)

SUMMARY: AddressSanitizer: 41232 byte(s) leaked in 2 allocation(s).
-------

16/21 pw-test-endpoint        FAIL           0.08s (exit status 1)

--- command ---
17:16:26 SPA_PLUGIN_DIR='/build/pipewire/build/spa/plugins/' PIPEWIRE_MODULE_DIR='/build/pipewire/build/src/modules/' /build/pipewire/build/src/tests/pw-test-endpoint
--- stderr ---
[W][000160569.414983][core.c:192 destroy_proxy()] core 0x613000000580: leaked proxy 0x60c000000940 id:2

=================================================================
==6175==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 192 byte(s) in 1 object(s) allocated from:
    #0 0x7ffff76a980e in __interceptor_calloc (/nix/store/7in2alrzhkpcax5fk4823ismvsmdk1aj-gcc-9.3.0-lib/lib/libasan.so.5+0x10a80e)
    #1 0x7ffff2d55e69  (<unknown module>)
    #2 0x7ffff73acbee in core_create_object (/build/pipewire/build/src/tests/../pipewire/libpipewire-0.3.so.0+0x9fbee)
    #3 0x7ffff2e37a19  (<unknown module>)
    #4 0x7ffff2e10bc0  (<unknown module>)
    #5 0x7ffff2e11507  (<unknown module>)
    #6 0x7ffff40c773c in loop_iterate (/build/pipewire/build/spa/plugins//support/libspa-support.so+0x1173c)
    #7 0x7ffff741dd87 in pw_main_loop_run (/build/pipewire/build/src/tests/../pipewire/libpipewire-0.3.so.0+0x110d87)
    #8 0x40deb7 in test_endpoint (/build/pipewire/build/src/tests/pw-test-endpoint+0x40deb7)
    #9 0x40243a in main (/build/pipewire/build/src/tests/pw-test-endpoint+0x40243a)
    #10 0x7ffff716fdbc in __libc_start_main (/nix/store/9l06v7fc38c1x3r2iydl15ksgz0ysb82-glibc-2.32/lib/libc.so.6+0x23dbc)

Direct leak of 120 byte(s) in 1 object(s) allocated from:
    #0 0x7ffff76a980e in __interceptor_calloc (/nix/store/7in2alrzhkpcax5fk4823ismvsmdk1aj-gcc-9.3.0-lib/lib/libasan.so.5+0x10a80e)
    #1 0x7ffff746f8da in pw_proxy_new (/build/pipewire/build/src/tests/../pipewire/libpipewire-0.3.so.0+0x1628da)
    #2 0x7ffff2e57a77  (<unknown module>)
    #3 0x40da1e in test_endpoint (/build/pipewire/build/src/tests/pw-test-endpoint+0x40da1e)
    #4 0x40243a in main (/build/pipewire/build/src/tests/pw-test-endpoint+0x40243a)
    #5 0x7ffff716fdbc in __libc_start_main (/nix/store/9l06v7fc38c1x3r2iydl15ksgz0ysb82-glibc-2.32/lib/libc.so.6+0x23dbc)

SUMMARY: AddressSanitizer: 312 byte(s) leaked in 2 allocation(s).
-------

18/21 pw-test-properties      FAIL           0.04s (exit status 1)

--- command ---
17:16:26 SPA_PLUGIN_DIR='/build/pipewire/build/spa/plugins/' PIPEWIRE_MODULE_DIR='/build/pipewire/build/src/modules/' /build/pipewire/build/src/tests/pw-test-properties
--- stderr ---
'[ "foo", "bar" ]'

=================================================================
==6182==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 22 byte(s) in 2 object(s) allocated from:
    #0 0x7ffff76a9628 in __interceptor_malloc (/nix/store/7in2alrzhkpcax5fk4823ismvsmdk1aj-gcc-9.3.0-lib/lib/libasan.so.5+0x10a628)
    #1 0x7ffff71c3b97 in __vasprintf_internal (/nix/store/9l06v7fc38c1x3r2iydl15ksgz0ysb82-glibc-2.32/lib/libc.so.6+0x77b97)

SUMMARY: AddressSanitizer: 22 byte(s) leaked in 2 allocation(s).
-------


Summary of Failures:

 4/21 test-fmt-ops            FAIL           0.14s (exit status 1)
 4/21 test-fmt-ops            FAIL           0.14s (exit status 1)
 5/21 test-resample           FAIL           1.34s (exit status 1)
 5/21 test-resample           FAIL           1.34s (exit status 1)
12/21 pw-test-protocol-native FAIL           0.08s (exit status 1)
12/21 pw-test-protocol-native FAIL           0.08s (exit status 1)
16/21 pw-test-endpoint        FAIL           0.08s (exit status 1)
16/21 pw-test-endpoint        FAIL           0.08s (exit status 1)
18/21 pw-test-properties      FAIL           0.04s (exit status 1)
18/21 pw-test-properties      FAIL           0.04s (exit status 1)
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: pipewire/pipewire#497