Mirror of Ardour Source Code
Find a file
Robin Gareus 4ad6ffec3d
Fix crash at exit when route-groups are deleted by route drop ref
==1914112==ERROR: AddressSanitizer: heap-use-after-free on address 0x619000483688 at pc 0x7f5b10be03c5 bp 0x7fff55e36670 sp 0x7fff55e36668
READ of size 8 at 0x619000483688 thread T0
    #0 0x7f5b10be03c4 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::__shared_count(std::__weak_count<(__gnu_cxx::_Lock_policy)2> const&, std::nothrow_t) /usr/include/c++/10/bits/shared_ptr_base.h:911
    #1 0x7f5b1190ecee in std::__shared_ptr<ARDOUR::VCA, (__gnu_cxx::_Lock_policy)2>::__shared_ptr(std::__weak_ptr<ARDOUR::VCA, (__gnu_cxx::_Lock_policy)2> const&, std::nothrow_t) /usr/include/c++/10/bits/shared_ptr_base.h:1382
    #2 0x7f5b1190cc3e in std::shared_ptr<ARDOUR::VCA>::shared_ptr(std::weak_ptr<ARDOUR::VCA> const&, std::nothrow_t) /usr/include/c++/10/bits/shared_ptr.h:417
    #3 0x7f5b1190aaae in std::weak_ptr<ARDOUR::VCA>::lock() const /usr/include/c++/10/bits/shared_ptr.h:749
    #4 0x7f5b118fea7e in ARDOUR::RouteGroup::remove(std::shared_ptr<ARDOUR::Route>) ../libs/ardour/route_group.cc:267
    #5 0x7f5b118fde6e in ARDOUR::RouteGroup::remove_when_going_away(std::weak_ptr<ARDOUR::Route>) ../libs/ardour/route_group.cc:223
    #6 0x7f5b11912d3d in void std::__invoke_impl<void, void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&>(std::__invoke_memfun_deref, void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&) /usr/include/c++/10/bits/invoke.h:73
    #7 0x7f5b119128c8 in std::__invoke_result<void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&>::type std::__invoke<void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&>(void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&) /usr/include/c++/10/bits/invoke.h:95
    #8 0x7f5b119125bc in void std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/10/functional:416
    #9 0x7f5b11911fdc in void std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>::operator()<, void>() /usr/include/c++/10/functional:499
    #10 0x7f5b11910e79 in void std::__invoke_impl<void, std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&>(std::__invoke_other, std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&) /usr/include/c++/10/bits/invoke.h:60
    #11 0x7f5b1190f187 in std::enable_if<is_invocable_r_v<void, std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&>, void>::type std::__invoke_r<void, std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&>(std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&) /usr/include/c++/10/bits/invoke.h:110
    #12 0x7f5b1190d26a in std::_Function_handler<void (), std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)> >::_M_invoke(std::_Any_data const&) /usr/include/c++/10/bits/std_function.h:291
    #13 0x558120310619 in std::function<void ()>::operator()() const /usr/include/c++/10/bits/std_function.h:622
    #14 0x7f5b10bcb0d6 in PBD::SignalWithCombiner<PBD::OptionalLastValue<void>, void ()>::operator()() ../libs/pbd/pbd/signals.h:508
    #15 0x7f5b10bc779b in PBD::Destructible::drop_references() ../libs/pbd/pbd/destructible.h:33
    #16 0x7f5b1196700f in ARDOUR::Session::destroy() ../libs/ardour/session.cc:822
    #17 0x7f5b11962f93 in ARDOUR::Session::~Session() ../libs/ardour/session.cc:581
    #18 0x7f5b119639a9 in ARDOUR::Session::~Session() ../libs/ardour/session.cc:582
    #19 0x558120305a92 in close_session ../luasession/luasession.cc:366
    #20 0x55812031911c in luabridge::FuncTraits<void (*)(), void (*)()>::call(void (*)(), luabridge::TypeListValues<void>) ../libs/lua/LuaBridge/detail/FuncTraits.h:73
    #21 0x5581203151eb in luabridge::CFunc::Call<void (*)(), void>::f(lua_State*) ../libs/lua/LuaBridge/detail/CFunctions.h:244
    #22 0x55812035701f in luaD_precall ../libs/lua/lua-5.3.5/ldo.c:434
    #23 0x55812038f1bd in luaV_execute ../libs/lua/lua-5.3.5/lvm.c:1136
    #24 0x5581203579a8 in luaD_call ../libs/lua/lua-5.3.5/ldo.c:499
    #25 0x558120357a80 in luaD_callnoyield ../libs/lua/lua-5.3.5/ldo.c:509
    #26 0x558120346f82 in f_call ../libs/lua/lua-5.3.5/lapi.c:943
    #27 0x558120354e59 in luaD_rawrunprotected ../libs/lua/lua-5.3.5/ldo.c:142
    #28 0x55812035924f in luaD_pcall ../libs/lua/lua-5.3.5/ldo.c:729
    #29 0x558120347226 in lua_pcallk ../libs/lua/lua-5.3.5/lapi.c:969
    #30 0x558120393ae9 in LuaState::do_command(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) ../libs/lua/luastate.cc:64
    #31 0x558120306da8 in interactive_interpreter ../luasession/luasession.cc:514
    #32 0x558120307b36 in main ../luasession/luasession.cc:641
    #33 0x7f5b0e40dd79 in __libc_start_main ../csu/libc-start.c:308
    #34 0x558120303179 in _start (/home/rgareus/src/ardour/build/luasession/luasession+0x7a179)

0x619000483688 is located 264 bytes inside of 952-byte region [0x619000483580,0x619000483938)
freed by thread T0 here:
    #0 0x7f5b12cac467 in operator delete(void*, unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:172
    #1 0x7f5b118fc486 in ARDOUR::RouteGroup::~RouteGroup() ../libs/ardour/route_group.cc:168
    #2 0x7f5b11c1c34b in std::_Sp_counted_ptr<ARDOUR::RouteGroup*, (__gnu_cxx::_Lock_policy)2>::_M_dispose() /usr/include/c++/10/bits/shared_ptr_base.h:380
    #3 0x55812031249a in std::_Sp_counted_base<(__gnu_cxx::_Lock_policy)2>::_M_release() /usr/include/c++/10/bits/shared_ptr_base.h:158
    #4 0x7f5b10bf9ac4 in std::__shared_count<(__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_count<(__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/10/bits/shared_ptr_base.h:752
    #5 0x7f5b11915cac in std::__shared_ptr<ARDOUR::RouteGroup, (__gnu_cxx::_Lock_policy)2>::operator=(std::__shared_ptr<ARDOUR::RouteGroup, (__gnu_cxx::_Lock_policy)2> const&) /usr/include/c++/10/bits/shared_ptr_base.h:1182
    #6 0x7f5b11915cd6 in std::shared_ptr<ARDOUR::RouteGroup>::operator=(std::shared_ptr<ARDOUR::RouteGroup> const&) /usr/include/c++/10/bits/shared_ptr.h:358
    #7 0x7f5b11915b75 in ARDOUR::RouteGroupMember::set_route_group(std::shared_ptr<ARDOUR::RouteGroup>) ../libs/ardour/route_group_member.cc:36
    #8 0x7f5b118fe9fe in ARDOUR::RouteGroup::remove(std::shared_ptr<ARDOUR::Route>) ../libs/ardour/route_group.cc:265
    #9 0x7f5b118fde6e in ARDOUR::RouteGroup::remove_when_going_away(std::weak_ptr<ARDOUR::Route>) ../libs/ardour/route_group.cc:223
    #10 0x7f5b11912d3d in void std::__invoke_impl<void, void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&>(std::__invoke_memfun_deref, void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&) /usr/include/c++/10/bits/invoke.h:73
    #11 0x7f5b119128c8 in std::__invoke_result<void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&>::type std::__invoke<void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&>(void (ARDOUR::RouteGroup::*&)(std::weak_ptr<ARDOUR::Route>), ARDOUR::RouteGroup*&, std::weak_ptr<ARDOUR::Route>&) /usr/include/c++/10/bits/invoke.h:95
    #12 0x7f5b119125bc in void std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>::__call<void, , 0ul, 1ul>(std::tuple<>&&, std::_Index_tuple<0ul, 1ul>) /usr/include/c++/10/functional:416
    #13 0x7f5b11911fdc in void std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>::operator()<, void>() /usr/include/c++/10/functional:499
    #14 0x7f5b11910e79 in void std::__invoke_impl<void, std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&>(std::__invoke_other, std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&) /usr/include/c++/10/bits/invoke.h:60
    #15 0x7f5b1190f187 in std::enable_if<is_invocable_r_v<void, std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&>, void>::type std::__invoke_r<void, std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&>(std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)>&) /usr/include/c++/10/bits/invoke.h:110
    #16 0x7f5b1190d26a in std::_Function_handler<void (), std::_Bind<void (ARDOUR::RouteGroup::*(ARDOUR::RouteGroup*, std::weak_ptr<ARDOUR::Route>))(std::weak_ptr<ARDOUR::Route>)> >::_M_invoke(std::_Any_data const&) /usr/include/c++/10/bits/std_function.h:291
    #17 0x558120310619 in std::function<void ()>::operator()() const /usr/include/c++/10/bits/std_function.h:622
    #18 0x7f5b10bcb0d6 in PBD::SignalWithCombiner<PBD::OptionalLastValue<void>, void ()>::operator()() ../libs/pbd/pbd/signals.h:508
    #19 0x7f5b10bc779b in PBD::Destructible::drop_references() ../libs/pbd/pbd/destructible.h:33
    #20 0x7f5b1196700f in ARDOUR::Session::destroy() ../libs/ardour/session.cc:822
    #21 0x7f5b11962f93 in ARDOUR::Session::~Session() ../libs/ardour/session.cc:581
    #22 0x7f5b119639a9 in ARDOUR::Session::~Session() ../libs/ardour/session.cc:582
    #23 0x558120305a92 in close_session ../luasession/luasession.cc:366
    #24 0x55812031911c in luabridge::FuncTraits<void (*)(), void (*)()>::call(void (*)(), luabridge::TypeListValues<void>) ../libs/lua/LuaBridge/detail/FuncTraits.h:73
    #25 0x5581203151eb in luabridge::CFunc::Call<void (*)(), void>::f(lua_State*) ../libs/lua/LuaBridge/detail/CFunctions.h:244
    #26 0x55812035701f in luaD_precall ../libs/lua/lua-5.3.5/ldo.c:434
    #27 0x55812038f1bd in luaV_execute ../libs/lua/lua-5.3.5/lvm.c:1136
    #28 0x5581203579a8 in luaD_call ../libs/lua/lua-5.3.5/ldo.c:499
    #29 0x558120357a80 in luaD_callnoyield ../libs/lua/lua-5.3.5/ldo.c:509
    #30 0x558120346f82 in f_call ../libs/lua/lua-5.3.5/lapi.c:943
    #31 0x558120354e59 in luaD_rawrunprotected ../libs/lua/lua-5.3.5/ldo.c:142
    #32 0x55812035924f in luaD_pcall ../libs/lua/lua-5.3.5/ldo.c:729
    #33 0x558120347226 in lua_pcallk ../libs/lua/lua-5.3.5/lapi.c:969
    #34 0x558120393ae9 in LuaState::do_command(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >) ../libs/lua/luastate.cc:64
    #35 0x558120306da8 in interactive_interpreter ../luasession/luasession.cc:514
    #36 0x558120307b36 in main ../luasession/luasession.cc:641
    #37 0x7f5b0e40dd79 in __libc_start_main ../csu/libc-start.c:308
2025-12-17 03:14:22 +01:00
doc Replace git.ardour link with github 2025-08-08 23:36:32 +02:00
gtk2_ardour Fix crashes caused by retaining references in 557058f362 2025-12-17 01:45:19 +01:00
headless Copy more mingw branches for MSVC 2025-10-22 18:48:40 +02:00
libs Fix crash at exit when route-groups are deleted by route drop ref 2025-12-17 03:14:22 +01:00
luasession Statically link luasession against libreadline 2025-11-21 13:36:36 +01:00
msvc_extra_headers Use compiler provided PTW_VERSION define for compatibility 2025-12-05 16:00:09 +01:00
MSVCardour3 remove all trace of cursor stacks; canvas cursor is always "just set" 2024-12-08 12:13:41 -07:00
MSVCMixbus3 Initial changes needed for building Mixbus (with MSVC) as version 5 2018-09-10 07:14:59 +01:00
MSVCvst_scan Add/remove source(s) in our MSVC project (vst2_scanner) 2021-07-05 10:25:35 +01:00
session_utils Copy more mingw branches for MSVC 2025-10-22 18:48:40 +02:00
share Update Lua script to use new RouteGroup API 2025-12-14 23:46:59 +01:00
tools Don't package xjadeo/harvid/ffmpeg with VBM 2025-12-11 03:28:47 +01:00
.dir-locals.el
.gitattributes
.gitignore Ignore files generated by macOS packaging 2024-07-23 17:01:16 +02:00
ardour.1 Update tracker/reference URLs to prefer HTTPs 2022-10-24 04:59:20 +02:00
COPYING add plugin clarification to COPYING 2023-04-26 13:28:29 -06:00
nutempo-todo todo list text for nutempo-related tasks 2021-08-16 13:41:49 -06:00
PACKAGER_README
README Directly use HTTPS 2021-03-23 23:27:45 +01:00
README-GITHUB.txt Update tracker/reference URLs to prefer HTTPs 2022-10-24 04:59:20 +02:00
system_config
TRANSLATORS Update translation howto 2023-09-24 19:58:25 +02:00
waf upgrade waf to 2.0.26 (includes new autowaf.py version) 2023-09-23 12:09:52 -06:00
wscript Add MSVC specific compiler flags to wscript 2025-12-13 16:01:03 +01:00

Please see the Ardour web site at https://ardour.org/ for all documentation..

For information on building ardour: 
      
     https://ardour.org/development.html