SD crashes at exit
Quitting Qt after clicking a bit randomly on SD categories:
=================================================================
==13928==ERROR: AddressSanitizer: heap-use-after-free on address 0x6040002a4130 at pc 0x7fdc39de7cef bp 0x7ffc9a9b5850 sp 0x7ffc9a9b5848
READ of size 4 at 0x6040002a4130 thread T0
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7fdc39de7cee in playlist_NodeDeleteExplicit ../../src/playlist/tree.c:119
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7fdc39de7a3d in playlist_NodeDeleteExplicit ../../src/playlist/tree.c:110
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7fdc39de7a3d in playlist_NodeDeleteExplicit ../../src/playlist/tree.c:110
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7fdc39df448a in playlist_ServicesDiscoveryInternalRemoveLocked ../../src/playlist/services_discovery.c:162
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7fdc39df5477 in playlist_ServicesDiscoveryKillAll ../../src/playlist/services_discovery.c:257
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7fdc39ddc011 in playlist_Destroy ../../src/playlist/engine.c:306
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7fdc39dd0f24 in intf_DestroyAll ../../src/interface/interface.c:270
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7fdc39d72952 in libvlc_InternalCleanup ../../src/libvlc.c:389
[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x7fdc3a874764 in libvlc_release ../../lib/core.c:104
[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x55f323fbac5d in main ../../bin/vlc.c:276
[#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x7fdc37cfbf29 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20f29)
[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x55f323fb9df9 in _start (/home/remi/videolan/vlc/build/bin/vlc-static+0x4df9)
0x6040002a4130 is located 32 bytes inside of 40-byte region [0x6040002a4110,0x6040002a4138)
freed by thread T0 here:
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7fdc3ac1f8c8 in __interceptor_free (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xd98c8)
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7fdc39ded723 in playlist_ItemRelease ../../src/playlist/item.c:367
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7fdc39de9141 in playlist_NodeDeleteExplicit ../../src/playlist/tree.c:146
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7fdc39de7a3d in playlist_NodeDeleteExplicit ../../src/playlist/tree.c:110
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7fdc39df448a in playlist_ServicesDiscoveryInternalRemoveLocked ../../src/playlist/services_discovery.c:162
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7fdc39df5477 in playlist_ServicesDiscoveryKillAll ../../src/playlist/services_discovery.c:257
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7fdc39ddc011 in playlist_Destroy ../../src/playlist/engine.c:306
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7fdc39dd0f24 in intf_DestroyAll ../../src/interface/interface.c:270
[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x7fdc39d72952 in libvlc_InternalCleanup ../../src/libvlc.c:389
[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x7fdc3a874764 in libvlc_release ../../lib/core.c:104
[#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x55f323fbac5d in main ../../bin/vlc.c:276
[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x7fdc37cfbf29 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20f29)
previously allocated by thread T12 here:
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7fdc3ac1fc20 in __interceptor_malloc (/usr/lib/x86_64-linux-gnu/libasan.so.4+0xd9c20)
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7fdc39dec971 in playlist_ItemNewFromInput ../../src/playlist/item.c:263
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7fdc39dee02e in playlist_NodeAddInput ../../src/playlist/item.c:532
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7fdc39df34c2 in playlist_sd_item_added ../../src/playlist/services_discovery.c:74
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7fdc2cc67e0c in services_discovery_AddItem ../../include/vlc_services_discovery.h:160
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7fdc2cc6b5b8 in vlclua_sd_add_common ../../modules/lua/libs/sd.c:355
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7fdc2cc6b643 in vlclua_sd_add_node ../../modules/lua/libs/sd.c:370
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7fdc2c955c74 (/usr/lib/x86_64-linux-gnu/liblua5.2.so.0+0xcc74)
Thread T12 created by T7 here:
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7fdc3ab7d390 in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x37390)
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7fdc39fe5019 in vlc_clone_attr ../../src/posix/thread.c:488
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7fdc39fe521c in vlc_clone ../../src/posix/thread.c:500
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7fdc2cc451e5 in Open_LuaSD ../../modules/lua/services_discovery.c:239
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7fdc39db7160 in generic_start ../../src/modules/modules.c:338
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7fdc39db62e7 in module_load ../../src/modules/modules.c:185
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7fdc39db698c in vlc_module_load ../../src/modules/modules.c:262
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7fdc39db72b1 in module_need ../../src/modules/modules.c:353
[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x7fdc39ea12e5 in vlc_sd_Create ../../src/input/services_discovery.c:118
[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x7fdc39df3b24 in playlist_ServicesDiscoveryAdd ../../src/playlist/services_discovery.c:128
[#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x7fdc13cb10c5 in PLSelector::setSource(QTreeWidgetItem*) ../../modules/gui/qt/components/playlist/selector.cpp:364
[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x7fdc13ec53d6 in PLSelector::qt_static_metacall(QObject*, QMetaObject::Call, int, void**) gui/qt/components/playlist/selector.moc.cpp:243
[#12](https://code.videolan.org/videolan/vlc/-/issues/12) 0x7fdc10d8fd54 in QMetaObject::activate(QObject*, int, int, void**) (/usr/lib/x86_64-linux-gnu/libQt5Core.so.5+0x2b8d54)
[#13](https://code.videolan.org/videolan/vlc/-/issues/13) 0x7fdc11f3f51f in QTreeWidget::itemClicked(QTreeWidgetItem*, int) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x41251f)
[#14](https://code.videolan.org/videolan/vlc/-/issues/14) 0x7fdc11ec8144 in QAbstractItemView::clicked(QModelIndex const&) (/usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5+0x39b144)
[#15](https://code.videolan.org/videolan/vlc/-/issues/15) 0xdd0000004a (<unknown module>)
Thread T7 created by T0 here:
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7fdc3ab7d390 in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.4+0x37390)
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7fdc39fe5019 in vlc_clone_attr ../../src/posix/thread.c:488
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7fdc39fe521c in vlc_clone ../../src/posix/thread.c:500
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7fdc135167a5 in Open ../../modules/gui/qt/qt.cpp:440
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7fdc13516986 in OpenIntf ../../modules/gui/qt/qt.cpp:460
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7fdc39db7160 in generic_start ../../src/modules/modules.c:338
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7fdc39db62e7 in module_load ../../src/modules/modules.c:185
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7fdc39db698c in vlc_module_load ../../src/modules/modules.c:262
[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x7fdc39db72b1 in module_need ../../src/modules/modules.c:353
[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x7fdc39dd03bb in intf_Create ../../src/interface/interface.c:112
[#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x7fdc39dd0bba in libvlc_InternalAddIntf ../../src/interface/interface.c:228
[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x7fdc3a8797e6 in libvlc_add_intf ../../lib/playlist.c:46
[#12](https://code.videolan.org/videolan/vlc/-/issues/12) 0x55f323fbab25 in main ../../bin/vlc.c:245
[#13](https://code.videolan.org/videolan/vlc/-/issues/13) 0x7fdc37cfbf29 in __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20f29)
SUMMARY: AddressSanitizer: heap-use-after-free ../../src/playlist/tree.c:119 in playlist_NodeDeleteExplicit
Shadow bytes around the buggy address:
0x0c088004c7d0: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fa
0x0c088004c7e0: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fa
0x0c088004c7f0: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fa
0x0c088004c800: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fd
0x0c088004c810: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fa
=>0x0c088004c820: fa fa fd fd fd fd[fd]fa fa fa fd fd fd fd fd fa
0x0c088004c830: fa fa fd fd fd fd fd fd fa fa fd fd fd fd fd fa
0x0c088004c840: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fa
0x0c088004c850: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fd
0x0c088004c860: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd fa
0x0c088004c870: fa fa fd fd fd fd fd fa fa fa fd fd fd fd fd 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
==13928==ABORTING
Edited by Rémi Denis-Courmont