Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dragged view crashing wayfire #2303

Closed
killown opened this issue Apr 2, 2024 · 0 comments · Fixed by #2312
Closed

dragged view crashing wayfire #2303

killown opened this issue Apr 2, 2024 · 0 comments · Fixed by #2312

Comments

@killown
Copy link
Contributor

killown commented Apr 2, 2024

wayfire test crash

=================================================================
==204857==ERROR: AddressSanitizer: heap-use-after-free on address 0x511000b9b608 at pc 0x59be67c9fcd9 bp 0x7ffc85f52190 sp 0x7ffc85f52180
READ of size 4 at 0x511000b9b608 thread T0
    #0 0x59be67c9fcd8 in wf::scene::translation_node_t::get_offset() const ../src/view/translation-node.cpp:41
    #1 0x59be67c9fcd8 in wf::scene::translation_node_instance_t::compute_visibility(wf::output_t*, wf::region_t&) ../src/view/translation-node.cpp:151
    #2 0x7fdc9b3020b1 in wf::move_drag::dragged_view_node_t::dragged_view_render_instance_t::compute_visibility(wf::output_t*, wf::region_t&) ../plugins/common/wayfire/plugins/common/move-drag-interface.hpp:395
    #3 0x59be67cdaf24 in wf::swapchain_damage_manager_t::update_scenegraph(unsigned int)::{lambda()#1}::operator()() const ../src/output/render-manager.cpp:77
    #4 0x59be67cdaf24 in void std::__invoke_impl<void, wf::swapchain_damage_manager_t::update_scenegraph(unsigned int)::{lambda()#1}&>(std::__invoke_other, wf::swapchain_damage_manager_t::update_scenegraph(unsigned int)::{lambda()#1}&) /usr/include/c++/13.2.1/bits/invoke.h:61
    #5 0x59be67cdaf24 in std::enable_if<is_invocable_r_v<void, wf::swapchain_damage_manager_t::update_scenegraph(unsigned int)::{lambda()#1}&>, void>::type std::__invoke_r<void, wf::swapchain_damage_manager_t::update_scenegraph(unsigned int)::{lambda()#1}&>(wf::swapchain_damage_manager_t::update_scenegraph(unsigned int)::{lambda()#1}&) /usr/include/c++/13.2.1/bits/invoke.h:111
    #6 0x59be67cdaf24 in std::_Function_handler<void (), wf::swapchain_damage_manager_t::update_scenegraph(unsigned int)::{lambda()#1}>::_M_invoke(std::_Any_data const&) /usr/include/c++/13.2.1/bits/std_function.h:290
    #7 0x7fdcb8b9fa22 in wl_event_loop_dispatch_idle (/usr/lib/libwayland-server.so.0+0xba22) (BuildId: d943a6a6069d1b5293dad7c842d26ce407ebdd19)
    #8 0x7fdcb8b9fb3c in wl_event_loop_dispatch (/usr/lib/libwayland-server.so.0+0xbb3c) (BuildId: d943a6a6069d1b5293dad7c842d26ce407ebdd19)
    #9 0x7fdcb8ba02d6 in wl_display_run (/usr/lib/libwayland-server.so.0+0xc2d6) (BuildId: d943a6a6069d1b5293dad7c842d26ce407ebdd19)
    #10 0x59be679ff8ae in main ../src/main.cpp:447
    #11 0x7fdcb8243ccf  (/usr/lib/libc.so.6+0x25ccf) (BuildId: c0caa0b7709d3369ee575fcd7d7d0b0fc48733af)
    #12 0x7fdcb8243d89 in __libc_start_main (/usr/lib/libc.so.6+0x25d89) (BuildId: c0caa0b7709d3369ee575fcd7d7d0b0fc48733af)
    #13 0x59be67a04784 in _start (/usr/bin/wayfire+0xfc784) (BuildId: 71cbd1c2597f1a64852773ff3c92fe4c098fcbbc)

0x511000b9b608 is located 136 bytes inside of 200-byte region [0x511000b9b580,0x511000b9b648)
freed by thread T0 here:
    #0 0x7fdcb8ce311a in operator delete(void*, unsigned long) /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_new_delete.cpp:164
    #1 0x59be67c0664d in std::__new_allocator<std::_Sp_counted_ptr_inplace<wf::toplevel_view_node_t, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> >::deallocate(std::_Sp_counted_ptr_inplace<wf::toplevel_view_node_t, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>*, unsigned long) /usr/include/c++/13.2.1/bits/new_allocator.h:168
    #2 0x59be67c0664d in std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wf::toplevel_view_node_t, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> > >::deallocate(std::allocator<std::_Sp_counted_ptr_inplace<wf::toplevel_view_node_t, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> >&, std::_Sp_counted_ptr_inplace<wf::toplevel_view_node_t, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>*, unsigned long) /usr/include/c++/13.2.1/bits/alloc_traits.h:516
    #3 0x59be67c0664d in std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wf::toplevel_view_node_t, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> > >::~__allocated_ptr() /usr/include/c++/13.2.1/bits/allocated_ptr.h:74
    #4 0x59be67c0664d in std::_Sp_counted_ptr_inplace<wf::toplevel_view_node_t, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_destroy() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:623
    #5 0x59be67abb3ad in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:353
    #6 0x59be67abb3ad in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:1071
    #7 0x59be67abb3ad in std::__shared_ptr<wf::scene::node_t, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:1524
    #8 0x59be67abb3ad in std::shared_ptr<wf::scene::node_t>::~shared_ptr() /usr/include/c++/13.2.1/bits/shared_ptr.h:175
    #9 0x59be67abb3ad in void std::_Destroy<std::shared_ptr<wf::scene::node_t> >(std::shared_ptr<wf::scene::node_t>*) /usr/include/c++/13.2.1/bits/stl_construct.h:151
    #10 0x59be67abb3ad in void std::_Destroy_aux<false>::__destroy<std::shared_ptr<wf::scene::node_t>*>(std::shared_ptr<wf::scene::node_t>*, std::shared_ptr<wf::scene::node_t>*) /usr/include/c++/13.2.1/bits/stl_construct.h:163
    #11 0x59be67abb3ad in void std::_Destroy<std::shared_ptr<wf::scene::node_t>*>(std::shared_ptr<wf::scene::node_t>*, std::shared_ptr<wf::scene::node_t>*) /usr/include/c++/13.2.1/bits/stl_construct.h:196
    #12 0x59be67abb3ad in void std::_Destroy<std::shared_ptr<wf::scene::node_t>*, std::shared_ptr<wf::scene::node_t> >(std::shared_ptr<wf::scene::node_t>*, std::shared_ptr<wf::scene::node_t>*, std::allocator<std::shared_ptr<wf::scene::node_t> >&) /usr/include/c++/13.2.1/bits/alloc_traits.h:947
    #13 0x59be67abb3ad in std::vector<std::shared_ptr<wf::scene::node_t>, std::allocator<std::shared_ptr<wf::scene::node_t> > >::~vector() /usr/include/c++/13.2.1/bits/stl_vector.h:732
    #14 0x59be67abb750 in wf::scene::node_t::~node_t() ../src/core/scene.cpp:46
    #15 0x59be67abb750 in wf::scene::floating_inner_node_t::~floating_inner_node_t() ../src/core/scene.cpp:514
    #16 0x59be67a13ed4 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:175
    #17 0x59be67a13ed4 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use_cold() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:199
    #18 0x59be67abb3ad in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:353
    #19 0x59be67abb3ad in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:1071
    #20 0x59be67abb3ad in std::__shared_ptr<wf::scene::node_t, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:1524
    #21 0x59be67abb3ad in std::shared_ptr<wf::scene::node_t>::~shared_ptr() /usr/include/c++/13.2.1/bits/shared_ptr.h:175
    #22 0x59be67abb3ad in void std::_Destroy<std::shared_ptr<wf::scene::node_t> >(std::shared_ptr<wf::scene::node_t>*) /usr/include/c++/13.2.1/bits/stl_construct.h:151
    #23 0x59be67abb3ad in void std::_Destroy_aux<false>::__destroy<std::shared_ptr<wf::scene::node_t>*>(std::shared_ptr<wf::scene::node_t>*, std::shared_ptr<wf::scene::node_t>*) /usr/include/c++/13.2.1/bits/stl_construct.h:163
    #24 0x59be67abb3ad in void std::_Destroy<std::shared_ptr<wf::scene::node_t>*>(std::shared_ptr<wf::scene::node_t>*, std::shared_ptr<wf::scene::node_t>*) /usr/include/c++/13.2.1/bits/stl_construct.h:196
    #25 0x59be67abb3ad in void std::_Destroy<std::shared_ptr<wf::scene::node_t>*, std::shared_ptr<wf::scene::node_t> >(std::shared_ptr<wf::scene::node_t>*, std::shared_ptr<wf::scene::node_t>*, std::allocator<std::shared_ptr<wf::scene::node_t> >&) /usr/include/c++/13.2.1/bits/alloc_traits.h:947
    #26 0x59be67abb3ad in std::vector<std::shared_ptr<wf::scene::node_t>, std::allocator<std::shared_ptr<wf::scene::node_t> > >::~vector() /usr/include/c++/13.2.1/bits/stl_vector.h:732
    #27 0x59be67abb750 in wf::scene::node_t::~node_t() ../src/core/scene.cpp:46
    #28 0x59be67abb750 in wf::scene::floating_inner_node_t::~floating_inner_node_t() ../src/core/scene.cpp:514
    #29 0x59be67a13ed4 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:175
    #30 0x59be67a13ed4 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use_cold() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:199
    #31 0x59be67bab1cf in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:1071
    #32 0x59be67bab1cf in std::__shared_ptr<wf::scene::floating_inner_node_t, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:1524
    #33 0x59be67bab1cf in std::shared_ptr<wf::scene::floating_inner_node_t>::~shared_ptr() /usr/include/c++/13.2.1/bits/shared_ptr.h:175
    #34 0x59be67bab1cf in wf::view_interface_t::view_priv_impl::~view_priv_impl() ../src/view/view-impl.hpp:30
    #35 0x59be67bab1cf in std::default_delete<wf::view_interface_t::view_priv_impl>::operator()(wf::view_interface_t::view_priv_impl*) const /usr/include/c++/13.2.1/bits/unique_ptr.h:99
    #36 0x59be67bab1cf in std::default_delete<wf::view_interface_t::view_priv_impl>::operator()(wf::view_interface_t::view_priv_impl*) const /usr/include/c++/13.2.1/bits/unique_ptr.h:93
    #37 0x59be67bab1cf in std::unique_ptr<wf::view_interface_t::view_priv_impl, std::default_delete<wf::view_interface_t::view_priv_impl> >::~unique_ptr() /usr/include/c++/13.2.1/bits/unique_ptr.h:404
    #38 0x59be67bab1cf in wf::view_interface_t::~view_interface_t() ../src/view/view.cpp:201
    #39 0x59be67c1dea9  (/usr/bin/wayfire+0x315ea9) (BuildId: 71cbd1c2597f1a64852773ff3c92fe4c098fcbbc)
    #40 0x59be67b1caad in wf::tracking_allocator_t<wf::view_interface_t>::deallocate_object(wf::view_interface_t*) ../src/api/wayfire/nonstd/tracking-allocator.hpp:70
    #41 0x59be67c058a6 in void std::__invoke_impl<void, void (wf::tracking_allocator_t<wf::view_interface_t>::*&)(wf::view_interface_t*), wf::tracking_allocator_t<wf::view_interface_t>*&, wf::xdg_toplevel_view_t*&>(std::__invoke_memfun_deref, void (wf::tracking_allocator_t<wf::view_interface_t>::*&)(wf::view_interface_t*), wf::tracking_allocator_t<wf::view_interface_t>*&, wf::xdg_toplevel_view_t*&) /usr/include/c++/13.2.1/bits/invoke.h:74
    #42 0x59be67c058a6 in std::__invoke_result<void (wf::tracking_allocator_t<wf::view_interface_t>::*&)(wf::view_interface_t*), wf::tracking_allocator_t<wf::view_interface_t>*&, wf::xdg_toplevel_view_t*&>::type std::__invoke<void (wf::tracking_allocator_t<wf::view_interface_t>::*&)(wf::view_interface_t*), wf::tracking_allocator_t<wf::view_interface_t>*&, wf::xdg_toplevel_view_t*&>(void (wf::tracking_allocator_t<wf::view_interface_t>::*&)(wf::view_interface_t*), wf::tracking_allocator_t<wf::view_interface_t>*&, wf::xdg_toplevel_view_t*&) /usr/include/c++/13.2.1/bits/invoke.h:96
    #43 0x59be67c058a6 in void std::_Bind<void (wf::tracking_allocator_t<wf::view_interface_t>::*(wf::tracking_allocator_t<wf::view_interface_t>*, std::_Placeholder<1>))(wf::view_interface_t*)>::__call<void, wf::xdg_toplevel_view_t*&, 0ul, 1ul>(std::tuple<wf::xdg_toplevel_view_t*&>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/13.2.1/functional:506
    #44 0x59be67c058a6 in void std::_Bind<void (wf::tracking_allocator_t<wf::view_interface_t>::*(wf::tracking_allocator_t<wf::view_interface_t>*, std::_Placeholder<1>))(wf::view_interface_t*)>::operator()<wf::xdg_toplevel_view_t*&, void>(wf::xdg_toplevel_view_t*&) /usr/include/c++/13.2.1/functional:591
    #45 0x59be67c058a6 in std::_Sp_counted_deleter<wf::xdg_toplevel_view_t*, std::_Bind<void (wf::tracking_allocator_t<wf::view_interface_t>::*(wf::tracking_allocator_t<wf::view_interface_t>*, std::_Placeholder<1>))(wf::view_interface_t*)>, std::allocator<void>, (__gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:527
    #46 0x59be67a13ed4 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:175
    #47 0x59be67a13ed4 in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release_last_use_cold() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:199
    #48 0x59be67c0983a in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::~__shared_count() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:1071
    #49 0x59be67c0983a in std::__shared_ptr<wf::xdg_toplevel_view_t, (__gnu_cxx::_Lock_policy)2>::~__shared_ptr() /usr/include/c++/13.2.1/bits/shared_ptr_base.h:1524
    #50 0x59be67c0983a in std::shared_ptr<wf::xdg_toplevel_view_t>::~shared_ptr() /usr/include/c++/13.2.1/bits/shared_ptr.h:175
    #51 0x59be67c0983a in xdg_toplevel_controller_t::~xdg_toplevel_controller_t() ../src/view/xdg-shell/xdg-toplevel-view.cpp:560
    #52 0x59be67c0983a in auto xdg_toplevel_controller_t::xdg_toplevel_controller_t(wlr_xdg_toplevel*)::{lambda(auto:1)#1}::operator()<void*>(void*) const ../src/view/xdg-shell/xdg-toplevel-view.cpp:530
    #53 0x59be67c0983a in void std::__invoke_impl<void, xdg_toplevel_controller_t::xdg_toplevel_controller_t(wlr_xdg_toplevel*)::{lambda(auto:1)#1}&, void*>(std::__invoke_other, xdg_toplevel_controller_t::xdg_toplevel_controller_t(wlr_xdg_toplevel*)::{lambda(auto:1)#1}&, void*&&) /usr/include/c++/13.2.1/bits/invoke.h:61
    #54 0x59be67c0983a in std::enable_if<is_invocable_r_v<void, xdg_toplevel_controller_t::xdg_toplevel_controller_t(wlr_xdg_toplevel*)::{lambda(auto:1)#1}&, void*>, void>::type std::__invoke_r<void, xdg_toplevel_controller_t::xdg_toplevel_controller_t(wlr_xdg_toplevel*)::{lambda(auto:1)#1}&, void*>(xdg_toplevel_controller_t::xdg_toplevel_controller_t(wlr_xdg_toplevel*)::{lambda(auto:1)#1}&, void*&&) /usr/include/c++/13.2.1/bits/invoke.h:111
    #55 0x59be67c0983a in std::_Function_handler<void (void*), xdg_toplevel_controller_t::xdg_toplevel_controller_t(wlr_xdg_toplevel*)::{lambda(auto:1)#1}>::_M_invoke(std::_Any_data const&, void*&&) /usr/include/c++/13.2.1/bits/std_function.h:290
    #56 0x59be67a04a29 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/13.2.1/bits/std_function.h:591
    #57 0x59be67a04a29 in wf::wl_listener_wrapper::emit(void*) ../src/wl-listener-wrapper.tpp:57
    #58 0x59be67a04a29 in handle_wrapped_listener ../src/wl-listener-wrapper.tpp:10
    #59 0x7fdcb8b9e01d in wl_signal_emit_mutable (/usr/lib/libwayland-server.so.0+0xa01d) (BuildId: d943a6a6069d1b5293dad7c842d26ce407ebdd19)
    #60 0x516000277a67  (<unknown module>)
EE 02-04-24 09:09:54.981 - [types/wlr_compositor.c:938] surface output destroyed 0x507000558040 bind=0x507000558060
previously allocated by thread T0 here:
    #0 0x7fdcb8ce2002 in operator new(unsigned long) /usr/src/debug/gcc/gcc/libsanitizer/asan/asan_new_delete.cpp:95
    #1 0x59be67c17189 in std::__new_allocator<std::_Sp_counted_ptr_inplace<wf::toplevel_view_node_t, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> >::allocate(unsigned long, void const*) /usr/include/c++/13.2.1/bits/new_allocator.h:147
    #2 0x59be67c17189 in std::allocator_traits<std::allocator<std::_Sp_counted_ptr_inplace<wf::toplevel_view_node_t, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> > >::allocate(std::allocator<std::_Sp_counted_ptr_inplace<wf::toplevel_view_node_t, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> >&, unsigned long) /usr/include/c++/13.2.1/bits/alloc_traits.h:482
    #3 0x59be67c17189 in std::__allocated_ptr<std::allocator<std::_Sp_counted_ptr_inplace<wf::toplevel_view_node_t, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> > > std::__allocate_guarded<std::allocator<std::_Sp_counted_ptr_inplace<wf::toplevel_view_node_t, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> > >(std::allocator<std::_Sp_counted_ptr_inplace<wf::toplevel_view_node_t, std::allocator<void>, (__gnu_cxx::_Lock_policy)2> >&) /usr/include/c++/13.2.1/bits/allocated_ptr.h:98
    #4 0x59be67c17189 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count<wf::toplevel_view_node_t, std::allocator<void>, std::shared_ptr<wf::xdg_toplevel_view_t>&>(wf::toplevel_view_node_t*&, std::_Sp_alloc_shared_tag<std::allocator<void> >, std::shared_ptr<wf::xdg_toplevel_view_t>&) /usr/include/c++/13.2.1/bits/shared_ptr_base.h:969
    #5 0x59be67c17189 in std::__shared_ptr<wf::toplevel_view_node_t, (__gnu_cxx::_Lock_policy)2>::__shared_ptr<std::allocator<void>, std::shared_ptr<wf::xdg_toplevel_view_t>&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, std::shared_ptr<wf::xdg_toplevel_view_t>&) /usr/include/c++/13.2.1/bits/shared_ptr_base.h:1712
    #6 0x59be67c17189 in std::shared_ptr<wf::toplevel_view_node_t>::shared_ptr<std::allocator<void>, std::shared_ptr<wf::xdg_toplevel_view_t>&>(std::_Sp_alloc_shared_tag<std::allocator<void> >, std::shared_ptr<wf::xdg_toplevel_view_t>&) /usr/include/c++/13.2.1/bits/shared_ptr.h:464
    #7 0x59be67c17189 in std::shared_ptr<std::enable_if<!std::is_array<wf::toplevel_view_node_t>::value, wf::toplevel_view_node_t>::type> std::make_shared<wf::toplevel_view_node_t, std::shared_ptr<wf::xdg_toplevel_view_t>&>(std::shared_ptr<wf::xdg_toplevel 02-04-24 09:09:54.981 - [types/wlr_compositor.c:938] surface output destroyed 0x5070005cbd10 bind=0x5070005cbd30
_view_t>&) /usr/include/c++/13.2.1/bits/shared_ptr.h:1010
    #8 0x59be67c17189 in wf::xdg_toplevel_view_t::create(wlr_xdg_toplevel*) ../src/view/xdg-shell/xdg-toplevel-view.cpp:240
    #9 0x59be67c18dc4 in xdg_toplevel_controller_t::xdg_toplevel_controller_t(wlr_xdg_toplevel*) ../src/view/xdg-shell/xdg-toplevel-view.cpp:532
    #10 0x59be67bf99b5 in wf::default_handle_new_xdg_toplevel(wlr_xdg_toplevel*) ../src/view/xdg-shell/xdg-toplevel-view.cpp:566
    #11 0x59be67bf99b5 in operator() ../src/view/xdg-shell.cpp:400
    #12 0x59be67bf99b5 in __invoke_impl<void, wf::init_xdg_shell()::<lambda(void*)>&, void*> /usr/include/c++/13.2.1/bits/invoke.h:61
    #13 0x59be67bf99b5 in __invoke_r<void, wf::init_xdg_shell()::<lambda(void*)>&, void*> /usr/include/c++/13.2.1/bits/invoke.h:111
    #14 0x59be67bf99b5 in _M_invoke /usr/include/c++/13.2.1/bits/std_function.h:290
    #15 0x59be67a04a29 in std::function<void (void*)>::operator()(void*) const /usr/include/c++/13.2.1/bits/std_function.h:591
    #16 0x59be67a04a29 in wf::wl_listener_wrapper::emit(void*) ../src/wl-listener-wrapper.tpp:57
    #17 0x59be67a04a29 in handle_wrapped_listener ../src/wl-listener-wrapper.tpp:10
    #18 0x7fdcb8b9e01d in wl_signal_emit_mutable (/usr/lib/libwayland-server.so.0+0xa01d) (BuildId: d943a6a6069d1b5293dad7c842d26ce407ebdd19)
    #19 0x7ffc85f5204f  ([stack]+0xfd04f)

SUMMARY: AddressSanitizer: heap-use-after-free ../src/view/translation-node.cpp:41 in wf::scene::translation_node_t::get_offset() const
Shadow bytes around the buggy address:
  0x511000b9b380: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x511000b9b400: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x511000b9b480: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x511000b9b500: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x511000b9b580: fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd fd
=>0x511000b9b600: fd[fd]fd fd fd fd fd fd fd fa fa fa fa fa fa fa
  0x511000b9b680: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x511000b9b700: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x511000b9b780: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x511000b9b800: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
  0x511000b9b880: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
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
  Container overflow:      fc
  Array cookie:            ac
  Intra object redzone:    bb
  ASan internal:           fe
  Left alloca redzone:     ca
  Right alloca redzone:    cb
==204857==ABORTING
(EE) failed to read Wayland events: Connection reset by peer
@killown killown added the bug label Apr 2, 2024
@ammen99 ammen99 added this to the 0.9 milestone Apr 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants