================================================================= ==29742==ERROR: AddressSanitizer: heap-use-after-free on address 0x602000d75350 at pc 0x7f4b1f509a77 bp 0x7ffd3e96e8e0 sp 0x7ffd3e96e8d0 READ of size 4 at 0x602000d75350 thread T0 #0 0x7f4b1f509a76 in Cairo::RefPtr::RefPtr(Cairo::RefPtr const&) /usr/include/cairomm-1.0/cairomm/refptr.h:314 #1 0x7f4b1f509a76 in ArdourCanvas::WaveView::render(ArdourCanvas::Rect const&, Cairo::RefPtr) const ../libs/canvas/wave_view.cc:1263 #2 0x7f4b1f4c3a3c in ArdourCanvas::Item::render_children(ArdourCanvas::Rect const&, Cairo::RefPtr) const ../libs/canvas/item.cc:800 #3 0x7f4b1f4b981c in ArdourCanvas::Container::render(ArdourCanvas::Rect const&, Cairo::RefPtr) const ../libs/canvas/container.cc:43 #4 0x7f4b1f4c3a3c in ArdourCanvas::Item::render_children(ArdourCanvas::Rect const&, Cairo::RefPtr) const ../libs/canvas/item.cc:800 #5 0x7f4b1f4b981c in ArdourCanvas::Container::render(ArdourCanvas::Rect const&, Cairo::RefPtr) const ../libs/canvas/container.cc:43 #6 0x7f4b1f4c3a3c in ArdourCanvas::Item::render_children(ArdourCanvas::Rect const&, Cairo::RefPtr) const ../libs/canvas/item.cc:800 #7 0x7f4b1f4b981c in ArdourCanvas::Container::render(ArdourCanvas::Rect const&, Cairo::RefPtr) const ../libs/canvas/container.cc:43 #8 0x7f4b1f4c3a3c in ArdourCanvas::Item::render_children(ArdourCanvas::Rect const&, Cairo::RefPtr) const ../libs/canvas/item.cc:800 #9 0x7f4b1f4b981c in ArdourCanvas::Container::render(ArdourCanvas::Rect const&, Cairo::RefPtr) const ../libs/canvas/container.cc:43 #10 0x7f4b1f4c3a3c in ArdourCanvas::Item::render_children(ArdourCanvas::Rect const&, Cairo::RefPtr) const ../libs/canvas/item.cc:800 #11 0x7f4b1f4b981c in ArdourCanvas::Container::render(ArdourCanvas::Rect const&, Cairo::RefPtr) const ../libs/canvas/container.cc:43 #12 0x7f4b1f4ee1fc in ArdourCanvas::ScrollGroup::render(ArdourCanvas::Rect const&, Cairo::RefPtr) const ../libs/canvas/scroll_group.cc:67 #13 0x7f4b1f4c3a3c in ArdourCanvas::Item::render_children(ArdourCanvas::Rect const&, Cairo::RefPtr) const ../libs/canvas/item.cc:800 #14 0x7f4b1f4b981c in ArdourCanvas::Container::render(ArdourCanvas::Rect const&, Cairo::RefPtr) const ../libs/canvas/container.cc:43 #15 0x7f4b1f4a8e65 in ArdourCanvas::Canvas::render(ArdourCanvas::Rect const&, Cairo::RefPtr const&) const ../libs/canvas/canvas.cc:123 #16 0x7f4b1f4a9602 in ArdourCanvas::GtkCanvas::on_expose_event(_GdkEventExpose*) ../libs/canvas/canvas.cc:821 #17 0x7f4b1a8004e3 in Gtk::Widget_Class::expose_event_callback(_GtkWidget*, _GdkEventExpose*) (/usr/lib/libgtkmm-2.4.so.1+0x2fa4e3) #18 0x7f4b1bb2f74b (/usr/lib/libgtk-x11-2.0.so.0+0x13074b) #19 0x7f4b1c564fa4 in g_closure_invoke (/usr/lib/libgobject-2.0.so.0+0xffa4) #20 0x7f4b1c5773ac (/usr/lib/libgobject-2.0.so.0+0x223ac) #21 0x7f4b1c57f6be in g_signal_emit_valist (/usr/lib/libgobject-2.0.so.0+0x2a6be) #22 0x7f4b1c57fffe in g_signal_emit (/usr/lib/libgobject-2.0.so.0+0x2affe) #23 0x7f4b1bc4784b (/usr/lib/libgtk-x11-2.0.so.0+0x24884b) #24 0x7f4b1bb2e531 in gtk_main_do_event (/usr/lib/libgtk-x11-2.0.so.0+0x12f531) #25 0x7f4b1b78c2ce (/usr/lib/libgdk-x11-2.0.so.0+0x422ce) #26 0x7f4b1b78c274 (/usr/lib/libgdk-x11-2.0.so.0+0x42274) #27 0x7f4b1b788da0 (/usr/lib/libgdk-x11-2.0.so.0+0x3eda0) #28 0x7f4b1b7896b7 in gdk_window_process_all_updates (/usr/lib/libgdk-x11-2.0.so.0+0x3f6b7) #29 0x7f4b1b789718 (/usr/lib/libgdk-x11-2.0.so.0+0x3f718) #30 0x7f4b1b7684e6 (/usr/lib/libgdk-x11-2.0.so.0+0x1e4e6) #31 0x7f4b1c28fc89 in g_main_context_dispatch (/usr/lib/libglib-2.0.so.0+0x49c89) #32 0x7f4b1c29003f (/usr/lib/libglib-2.0.so.0+0x4a03f) #33 0x7f4b1c290361 in g_main_loop_run (/usr/lib/libglib-2.0.so.0+0x4a361) #34 0x7f4b1bb2d346 in gtk_main (/usr/lib/libgtk-x11-2.0.so.0+0x12e346) #35 0x7f4b1f161e7b in Gtkmm2ext::UI::run(Receiver&) ../libs/gtkmm2ext/gtk_ui.cc:286 #36 0x4a7442 in main ../gtk2_ardour/main.cc:408 #37 0x7f4b17ae3290 in __libc_start_main (/usr/lib/libc.so.6+0x20290) #38 0x4babc9 in _start (/home/ross/Downloads/pkg/extra/ardour/src/ardour-git/build/gtk2_ardour/ardour-5.3.0+0x4babc9) 0x602000d75350 is located 0 bytes inside of 4-byte region [0x602000d75350,0x602000d75354) freed by thread T0 here: #0 0x7f4b1fa4d5d0 in operator delete(void*) /build/gcc/src/gcc/libsanitizer/asan/asan_new_delete.cc:92 #1 0x7f4b1f50cfe0 in Cairo::RefPtr::unref() /usr/include/cairomm-1.0/cairomm/refptr.h:235 #2 0x7f4b1f50cfe0 in Cairo::RefPtr::~RefPtr() /usr/include/cairomm-1.0/cairomm/refptr.h:217 #3 0x7f4b1f50cfe0 in ArdourCanvas::WaveViewCache::Entry::~Entry() ../libs/canvas/canvas/wave_view.h:89 #4 0x7f4b1f50cfe0 in void boost::checked_delete(ArdourCanvas::WaveViewCache::Entry*) /usr/include/boost/core/checked_delete.hpp:34 #5 0x7f4b1f50cfe0 in boost::detail::sp_counted_impl_p::dispose() /usr/include/boost/smart_ptr/detail/sp_counted_impl.hpp:78 #6 0x7f4b1f4fb180 in boost::detail::sp_counted_base::release() /usr/include/boost/smart_ptr/detail/sp_counted_base_gcc_x86.hpp:146 #7 0x7f4b1f503e14 in boost::detail::sp_counted_base::release() /usr/include/glibmm-2.4/glibmm/threads.h:709 #8 0x7f4b1f503e14 in boost::detail::shared_count::~shared_count() /usr/include/boost/smart_ptr/detail/shared_count.hpp:473 #9 0x7f4b1f503e14 in boost::shared_ptr::~shared_ptr() /usr/include/boost/smart_ptr/shared_ptr.hpp:336 #10 0x7f4b1f503e14 in boost::shared_ptr::reset() /usr/include/boost/smart_ptr/shared_ptr.hpp:659 #11 0x7f4b1f503e14 in ArdourCanvas::WaveView::invalidate_image_cache() ../libs/canvas/wave_view.cc:276 #12 0x7f4b1f5040f1 in ArdourCanvas::WaveView::set_samples_per_pixel(double) ../libs/canvas/wave_view.cc:240 #13 0x67e004 in AudioRegionView::set_samples_per_pixel(double) ../gtk2_ardour/audio_region_view.cc:1024 #14 0x14c5cbc in StreamView::set_samples_per_pixel(double) ../gtk2_ardour/streamview.cc:149 #15 0x12d7389 in RouteTimeAxisView::set_samples_per_pixel(double) ../gtk2_ardour/route_time_axis.cc:1084 #16 0x65690e in sigc::internal::signal_emit0::emit(sigc::internal::signal_impl*) /usr/include/sigc++-2.0/sigc++/signal.h:786 #17 0x791b9d in sigc::signal0::emit() const /usr/include/sigc++-2.0/sigc++/signal.h:2701 #18 0x791b9d in sigc::signal0::operator()() const /usr/include/sigc++-2.0/sigc++/signal.h:2709 #19 0x791b9d in Editor::set_samples_per_pixel(long) ../gtk2_ardour/editor.cc:4529 #20 0x792025 in Editor::visual_changer(Editor::VisualChange const&) ../gtk2_ardour/editor.cc:4612 #21 0x792777 in Editor::idle_visual_changer() ../gtk2_ardour/editor.cc:4599 #22 0x792777 in Editor::_idle_visual_changer(void*) ../gtk2_ardour/editor.cc:4576 #23 0x7f4b1c28fc89 in g_main_context_dispatch (/usr/lib/libglib-2.0.so.0+0x49c89) previously allocated by thread T62 here: #0 0x7f4b1fa4cf50 in operator new(unsigned long) /build/gcc/src/gcc/libsanitizer/asan/asan_new_delete.cc:60 #1 0x7f4b19c34672 in Cairo::ImageSurface::create(Cairo::Format, int, int) (/usr/lib/libcairomm-1.0.so.1+0x1c672) Thread T62 created by T0 here: #0 0x7f4b1f9b6548 in __interceptor_pthread_create /build/gcc/src/gcc/libsanitizer/asan/asan_interceptors.cc:236 #1 0x7f4b1c2d3e0f (/usr/lib/libglib-2.0.so.0+0x8de0f) SUMMARY: AddressSanitizer: heap-use-after-free /usr/include/cairomm-1.0/cairomm/refptr.h:314 in Cairo::RefPtr::RefPtr(Cairo::RefPtr const&) Shadow bytes around the buggy address: 0x0c04801a6a10: fa fa fa fa fa fa fa fa fa fa fd fd fa fa fa fa 0x0c04801a6a20: fa fa fa fa fa fa fd fa fa fa fa fa fa fa fa fa 0x0c04801a6a30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c04801a6a40: fa fa fa fa fa fa fd fa fa fa 00 02 fa fa fa fa 0x0c04801a6a50: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa =>0x0c04801a6a60: fa fa fa fa fa fa fa fa fa fa[fd]fa fa fa fa fa 0x0c04801a6a70: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c04801a6a80: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c04801a6a90: fa fa fa fa fa fa fa fa fa fa fd fa fa fa fa fa 0x0c04801a6aa0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa 0x0c04801a6ab0: 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 Heap right redzone: fb Freed heap region: fd Stack left redzone: f1 Stack mid redzone: f2 Stack right redzone: f3 Stack partial redzone: f4 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 ==29742==ABORTING