Skip to content
Snippets Groups Projects
  • Pekka Paalanen's avatar
    719ca873
    desktop-shell: clean up shell_output better · 719ca873
    Pekka Paalanen authored
    
    This fixes the following ASan detected leaks:
    
    Direct leak of 88 byte(s) in 1 object(s) allocated from:
        #0 0x7f8c3455f330 in __interceptor_malloc (/lib/x86_64-linux-gnu/libasan.so.5+0xe9330)
        #1 0x7f8c33c60906 in wl_event_loop_add_timer ../../git/wayland/src/event-loop.c:571
        #2 0x7f8c2ff98f46 in shell_fade_init ../../git/weston/desktop-shell/shell.c:4211
        #3 0x7f8c2ff9e1da in wet_shell_init ../../git/weston/desktop-shell/shell.c:5266
        #4 0x7f8c3443ede5 in wet_load_shell ../../git/weston/compositor/main.c:956
        #5 0x7f8c3444fdb9 in wet_main ../../git/weston/compositor/main.c:3434
        #6 0x55878ad3bfc6 in execute_compositor ../../git/weston/tests/weston-test-fixture-compositor.c:432
        #7 0x55878ad3f9fa in weston_test_harness_execute_as_client ../../git/weston/tests/weston-test-runner.c:528
        #8 0x55878ad2fbd6 in fixture_setup ../../git/weston/tests/viewporter-test.c:46
        #9 0x55878ad2fc58 in fixture_setup_run_ ../../git/weston/tests/viewporter-test.c:48
        #10 0x55878ad3ffaf in main ../../git/weston/tests/weston-test-runner.c:661
        #11 0x7f8c340b409a in __libc_start_main ../csu/libc-start.c:308
        #12 0x55878ad2f769 in _start (/home/pq/build/weston-meson/tests/test-viewporter+0xc769)
    
    Indirect leak of 856 byte(s) in 1 object(s) allocated from:
        #0 0x7f8c3455f518 in calloc (/lib/x86_64-linux-gnu/libasan.so.5+0xe9518)
        #1 0x7f8c33c99b73 in zalloc ../../git/weston/include/libweston/zalloc.h:38
        #2 0x7f8c33c9cfb1 in weston_surface_create ../../git/weston/libweston/compositor.c:574
        #3 0x7f8c2ff98230 in shell_fade_create_surface_for_output ../../git/weston/desktop-shell/shell.c:4059
        #4 0x7f8c2ff98df6 in shell_fade_init ../../git/weston/desktop-shell/shell.c:4202
        #5 0x7f8c2ff9e1da in wet_shell_init ../../git/weston/desktop-shell/shell.c:5266
        #6 0x7f8c3443ede5 in wet_load_shell ../../git/weston/compositor/main.c:956
        #7 0x7f8c3444fdb9 in wet_main ../../git/weston/compositor/main.c:3434
        #8 0x55878ad3bfc6 in execute_compositor ../../git/weston/tests/weston-test-fixture-compositor.c:432
        #9 0x55878ad3f9fa in weston_test_harness_execute_as_client ../../git/weston/tests/weston-test-runner.c:528
        #10 0x55878ad2fbd6 in fixture_setup ../../git/weston/tests/viewporter-test.c:46
        #11 0x55878ad2fc58 in fixture_setup_run_ ../../git/weston/tests/viewporter-test.c:48
        #12 0x55878ad3ffaf in main ../../git/weston/tests/weston-test-runner.c:661
        #13 0x7f8c340b409a in __libc_start_main ../csu/libc-start.c:308
        #14 0x55878ad2f769 in _start (/home/pq/build/weston-meson/tests/test-viewporter+0xc769)
    
    Indirect leak of 608 byte(s) in 1 object(s) allocated from:
        #0 0x7f8c3455f518 in calloc (/lib/x86_64-linux-gnu/libasan.so.5+0xe9518)
        #1 0x7f8c33c99b73 in zalloc ../../git/weston/include/libweston/zalloc.h:38
        #2 0x7f8c33c9bed5 in weston_view_create ../../git/weston/libweston/compositor.c:365
        #3 0x7f8c2ff98251 in shell_fade_create_surface_for_output ../../git/weston/desktop-shell/shell.c:4063
        #4 0x7f8c2ff98df6 in shell_fade_init ../../git/weston/desktop-shell/shell.c:4202
        #5 0x7f8c2ff9e1da in wet_shell_init ../../git/weston/desktop-shell/shell.c:5266
        #6 0x7f8c3443ede5 in wet_load_shell ../../git/weston/compositor/main.c:956
        #7 0x7f8c3444fdb9 in wet_main ../../git/weston/compositor/main.c:3434
        #8 0x55878ad3bfc6 in execute_compositor ../../git/weston/tests/weston-test-fixture-compositor.c:432
        #9 0x55878ad3f9fa in weston_test_harness_execute_as_client ../../git/weston/tests/weston-test-runner.c:528
        #10 0x55878ad2fbd6 in fixture_setup ../../git/weston/tests/viewporter-test.c:46
        #11 0x55878ad2fc58 in fixture_setup_run_ ../../git/weston/tests/viewporter-test.c:48
        #12 0x55878ad3ffaf in main ../../git/weston/tests/weston-test-runner.c:661
        #13 0x7f8c340b409a in __libc_start_main ../csu/libc-start.c:308
        #14 0x55878ad2f769 in _start (/home/pq/build/weston-meson/tests/test-viewporter+0xc769)
    
    They were found with:
    
    	ASAN_OPTIONS=fast_unwind_on_malloc=0,malloc_context_size=50 \
    	LSAN_OPTIONS=suppressions=/home/pq/git/weston/.gitlab-ci/leak-sanitizer.supp \
    	./tests/test-viewporter test_viewporter_double_create
    
    Turns out shell_destroy() had an open-coded and outdated copy of the
    tear-down sequence, so fixing the leaks in only handle_output_destroy()
    was not enough.
    
    Signed-off-by: default avatarPekka Paalanen <pekka.paalanen@collabora.com>
    719ca873
    History
    desktop-shell: clean up shell_output better
    Pekka Paalanen authored
    
    This fixes the following ASan detected leaks:
    
    Direct leak of 88 byte(s) in 1 object(s) allocated from:
        #0 0x7f8c3455f330 in __interceptor_malloc (/lib/x86_64-linux-gnu/libasan.so.5+0xe9330)
        #1 0x7f8c33c60906 in wl_event_loop_add_timer ../../git/wayland/src/event-loop.c:571
        #2 0x7f8c2ff98f46 in shell_fade_init ../../git/weston/desktop-shell/shell.c:4211
        #3 0x7f8c2ff9e1da in wet_shell_init ../../git/weston/desktop-shell/shell.c:5266
        #4 0x7f8c3443ede5 in wet_load_shell ../../git/weston/compositor/main.c:956
        #5 0x7f8c3444fdb9 in wet_main ../../git/weston/compositor/main.c:3434
        #6 0x55878ad3bfc6 in execute_compositor ../../git/weston/tests/weston-test-fixture-compositor.c:432
        #7 0x55878ad3f9fa in weston_test_harness_execute_as_client ../../git/weston/tests/weston-test-runner.c:528
        #8 0x55878ad2fbd6 in fixture_setup ../../git/weston/tests/viewporter-test.c:46
        #9 0x55878ad2fc58 in fixture_setup_run_ ../../git/weston/tests/viewporter-test.c:48
        #10 0x55878ad3ffaf in main ../../git/weston/tests/weston-test-runner.c:661
        #11 0x7f8c340b409a in __libc_start_main ../csu/libc-start.c:308
        #12 0x55878ad2f769 in _start (/home/pq/build/weston-meson/tests/test-viewporter+0xc769)
    
    Indirect leak of 856 byte(s) in 1 object(s) allocated from:
        #0 0x7f8c3455f518 in calloc (/lib/x86_64-linux-gnu/libasan.so.5+0xe9518)
        #1 0x7f8c33c99b73 in zalloc ../../git/weston/include/libweston/zalloc.h:38
        #2 0x7f8c33c9cfb1 in weston_surface_create ../../git/weston/libweston/compositor.c:574
        #3 0x7f8c2ff98230 in shell_fade_create_surface_for_output ../../git/weston/desktop-shell/shell.c:4059
        #4 0x7f8c2ff98df6 in shell_fade_init ../../git/weston/desktop-shell/shell.c:4202
        #5 0x7f8c2ff9e1da in wet_shell_init ../../git/weston/desktop-shell/shell.c:5266
        #6 0x7f8c3443ede5 in wet_load_shell ../../git/weston/compositor/main.c:956
        #7 0x7f8c3444fdb9 in wet_main ../../git/weston/compositor/main.c:3434
        #8 0x55878ad3bfc6 in execute_compositor ../../git/weston/tests/weston-test-fixture-compositor.c:432
        #9 0x55878ad3f9fa in weston_test_harness_execute_as_client ../../git/weston/tests/weston-test-runner.c:528
        #10 0x55878ad2fbd6 in fixture_setup ../../git/weston/tests/viewporter-test.c:46
        #11 0x55878ad2fc58 in fixture_setup_run_ ../../git/weston/tests/viewporter-test.c:48
        #12 0x55878ad3ffaf in main ../../git/weston/tests/weston-test-runner.c:661
        #13 0x7f8c340b409a in __libc_start_main ../csu/libc-start.c:308
        #14 0x55878ad2f769 in _start (/home/pq/build/weston-meson/tests/test-viewporter+0xc769)
    
    Indirect leak of 608 byte(s) in 1 object(s) allocated from:
        #0 0x7f8c3455f518 in calloc (/lib/x86_64-linux-gnu/libasan.so.5+0xe9518)
        #1 0x7f8c33c99b73 in zalloc ../../git/weston/include/libweston/zalloc.h:38
        #2 0x7f8c33c9bed5 in weston_view_create ../../git/weston/libweston/compositor.c:365
        #3 0x7f8c2ff98251 in shell_fade_create_surface_for_output ../../git/weston/desktop-shell/shell.c:4063
        #4 0x7f8c2ff98df6 in shell_fade_init ../../git/weston/desktop-shell/shell.c:4202
        #5 0x7f8c2ff9e1da in wet_shell_init ../../git/weston/desktop-shell/shell.c:5266
        #6 0x7f8c3443ede5 in wet_load_shell ../../git/weston/compositor/main.c:956
        #7 0x7f8c3444fdb9 in wet_main ../../git/weston/compositor/main.c:3434
        #8 0x55878ad3bfc6 in execute_compositor ../../git/weston/tests/weston-test-fixture-compositor.c:432
        #9 0x55878ad3f9fa in weston_test_harness_execute_as_client ../../git/weston/tests/weston-test-runner.c:528
        #10 0x55878ad2fbd6 in fixture_setup ../../git/weston/tests/viewporter-test.c:46
        #11 0x55878ad2fc58 in fixture_setup_run_ ../../git/weston/tests/viewporter-test.c:48
        #12 0x55878ad3ffaf in main ../../git/weston/tests/weston-test-runner.c:661
        #13 0x7f8c340b409a in __libc_start_main ../csu/libc-start.c:308
        #14 0x55878ad2f769 in _start (/home/pq/build/weston-meson/tests/test-viewporter+0xc769)
    
    They were found with:
    
    	ASAN_OPTIONS=fast_unwind_on_malloc=0,malloc_context_size=50 \
    	LSAN_OPTIONS=suppressions=/home/pq/git/weston/.gitlab-ci/leak-sanitizer.supp \
    	./tests/test-viewporter test_viewporter_double_create
    
    Turns out shell_destroy() had an open-coded and outdated copy of the
    tear-down sequence, so fixing the leaks in only handle_output_destroy()
    was not enough.
    
    Signed-off-by: default avatarPekka Paalanen <pekka.paalanen@collabora.com>