image use after free
Easy to trigger with preparsing the "My Pictures" services discovery (assuming there are a lot of image files in that directory)
=================================================================
==9473==ERROR: AddressSanitizer: heap-use-after-free on address 0x619000993980 at pc 0x7fca7747ff7f bp 0x7fca2c0a0c70 sp 0x7fca2c0a0420
READ of size 1028 at 0x619000993980 thread T724
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7fca7747ff7e (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x5cf7e)
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7fca76920b2e in video_format_Copy ../../include/vlc_es.h:388
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7fca76926e05 in es_format_Copy ../../src/misc/es_format.c:515
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7fca76a104bc in EsOutAddSlave ../../src/input/es_out.c:1546
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7fca76a12a00 in EsOutAdd.lto_priv.3985 ../../src/input/es_out.c:1641
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7fca76a261e5 in es_out_Add.lto_priv.3884 ../../include/vlc_es_out.h:121
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7fca769f8e6b in CmdExecuteAdd.lto_priv.3936 ../../src/input/es_out_timeshift.c:1330
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7fca76a28396 in Add ../../src/input/es_out_timeshift.c:452
[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x7fca2cc0df13 in es_out_Add.lto_priv.23 ../../include/vlc_es_out.h:121
[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x7fca2cc0be9f in Open.lto_priv.31 ../../modules/demux/image.c:693
[#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x7fca76aaa3f7 in generic_start ../../src/modules/modules.c:349
[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x7fca76acfa32 in module_load.lto_priv.4311 ../../src/modules/modules.c:183
[#12](https://code.videolan.org/videolan/vlc/-/issues/12) 0x7fca76aa9c36 in vlc_module_load ../../src/modules/modules.c:275
[#13](https://code.videolan.org/videolan/vlc/-/issues/13) 0x7fca76aaa58d in module_need ../../src/modules/modules.c:364
[#14](https://code.videolan.org/videolan/vlc/-/issues/14) 0x7fca76a34cc8 in demux_NewAdvanced ../../src/input/demux.c:260
[#15](https://code.videolan.org/videolan/vlc/-/issues/15) 0x7fca769e5a2a in InputDemuxNew ../../src/input/input.c:2334
[#16](https://code.videolan.org/videolan/vlc/-/issues/16) 0x7fca769e6246 in InputSourceNew ../../src/input/input.c:2444
[#17](https://code.videolan.org/videolan/vlc/-/issues/17) 0x7fca769da5ee in Init.lto_priv.3878 ../../src/input/input.c:1308
[#18](https://code.videolan.org/videolan/vlc/-/issues/18) 0x7fca76a063af in Preparse ../../src/input/input.c:512
[#19](https://code.videolan.org/videolan/vlc/-/issues/19) 0x7fca7598e493 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7493)
[#20](https://code.videolan.org/videolan/vlc/-/issues/20) 0x7fca747b693e in __clone (/lib/x86_64-linux-gnu/libc.so.6+0xe893e)
0x619000993980 is located 0 bytes inside of 1028-byte region [0x619000993980,0x619000993d84)
freed by thread T724 here:
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7fca774e4a10 in free (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1a10)
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7fca76920bc5 in video_format_Clean ../../include/vlc_es.h:428
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7fca7692778b in es_format_Clean ../../src/misc/es_format.c:551
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7fca76910199 in DeleteDecoder ../../src/misc/image.c:671
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7fca769082f0 in image_HandlerDelete ../../src/misc/image.c:109
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7fca2cc0f968 in Decode.lto_priv.25 ../../modules/demux/image.c:153
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7fca2cc0bc47 in Open.lto_priv.31 ../../modules/demux/image.c:663
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7fca76aaa3f7 in generic_start ../../src/modules/modules.c:349
[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x7fca76acfa32 in module_load.lto_priv.4311 ../../src/modules/modules.c:183
[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x7fca76aa9c36 in vlc_module_load ../../src/modules/modules.c:275
[#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x7fca76aaa58d in module_need ../../src/modules/modules.c:364
[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x7fca76a34cc8 in demux_NewAdvanced ../../src/input/demux.c:260
[#12](https://code.videolan.org/videolan/vlc/-/issues/12) 0x7fca769e5a2a in InputDemuxNew ../../src/input/input.c:2334
[#13](https://code.videolan.org/videolan/vlc/-/issues/13) 0x7fca769e6246 in InputSourceNew ../../src/input/input.c:2444
[#14](https://code.videolan.org/videolan/vlc/-/issues/14) 0x7fca769da5ee in Init.lto_priv.3878 ../../src/input/input.c:1308
[#15](https://code.videolan.org/videolan/vlc/-/issues/15) 0x7fca76a063af in Preparse ../../src/input/input.c:512
[#16](https://code.videolan.org/videolan/vlc/-/issues/16) 0x7fca7598e493 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7493)
previously allocated by thread T724 here:
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7fca774e4d28 in malloc (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc1d28)
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7fca2341367f in DecodeBlock.lto_priv.215 ../../modules/codec/avcodec/video.c:981
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7fca234036b1 in DecodeVideo.lto_priv.219 ../../modules/codec/avcodec/video.c:1155
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7fca76908d0d in ImageRead ../../src/misc/image.c:166
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7fca2cc0f952 in Decode.lto_priv.25 ../../modules/demux/image.c:152
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7fca2cc0bc47 in Open.lto_priv.31 ../../modules/demux/image.c:663
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7fca76aaa3f7 in generic_start ../../src/modules/modules.c:349
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7fca76acfa32 in module_load.lto_priv.4311 ../../src/modules/modules.c:183
[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x7fca76aa9c36 in vlc_module_load ../../src/modules/modules.c:275
[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x7fca76aaa58d in module_need ../../src/modules/modules.c:364
[#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x7fca76a34cc8 in demux_NewAdvanced ../../src/input/demux.c:260
[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x7fca769e5a2a in InputDemuxNew ../../src/input/input.c:2334
[#12](https://code.videolan.org/videolan/vlc/-/issues/12) 0x7fca769e6246 in InputSourceNew ../../src/input/input.c:2444
[#13](https://code.videolan.org/videolan/vlc/-/issues/13) 0x7fca769da5ee in Init.lto_priv.3878 ../../src/input/input.c:1308
[#14](https://code.videolan.org/videolan/vlc/-/issues/14) 0x7fca76a063af in Preparse ../../src/input/input.c:512
[#15](https://code.videolan.org/videolan/vlc/-/issues/15) 0x7fca7598e493 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7493)
Thread T724 created by T9 here:
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7fca77453f59 in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x30f59)
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7fca768b9e41 in vlc_clone_attr ../../src/posix/thread.c:482
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7fca768ba03a in vlc_clone ../../src/posix/thread.c:494
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7fca76a03931 in input_Start ../../src/input/input.c:180
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7fca76a85aee in PreparserOpenInput ../../src/playlist/preparser.c:65
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7fca76914303 in Thread ../../src/misc/background_worker.c:91
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7fca7598e493 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7493)
Thread T9 created by T8 here:
[#0](https://code.videolan.org/videolan/vlc/-/issues/0) 0x7fca77453f59 in __interceptor_pthread_create (/usr/lib/x86_64-linux-gnu/libasan.so.3+0x30f59)
[#1](https://code.videolan.org/videolan/vlc/-/issues/1) 0x7fca768b9e41 in vlc_clone_attr ../../src/posix/thread.c:482
[#2](https://code.videolan.org/videolan/vlc/-/issues/2) 0x7fca768ba25f in vlc_clone_detach ../../src/posix/thread.c:544
[#3](https://code.videolan.org/videolan/vlc/-/issues/3) 0x7fca769153db in background_worker_Push ../../src/misc/background_worker.c:205
[#4](https://code.videolan.org/videolan/vlc/-/issues/4) 0x7fca76a86725 in playlist_preparser_Push ../../src/playlist/preparser.c:167
[#5](https://code.videolan.org/videolan/vlc/-/issues/5) 0x7fca76af4bdd in libvlc_MetadataRequest ../../src/libvlc.c:633
[#6](https://code.videolan.org/videolan/vlc/-/issues/6) 0x7fca76a8ffd2 in playlist_Preparse ../../src/playlist/item.c:731
[#7](https://code.videolan.org/videolan/vlc/-/issues/7) 0x7fca76a8dce3 in playlist_NodeAddInput ../../src/playlist/item.c:521
[#8](https://code.videolan.org/videolan/vlc/-/issues/8) 0x7fca76a92973 in playlist_sd_item_added ../../src/playlist/services_discovery.c:74
[#9](https://code.videolan.org/videolan/vlc/-/issues/9) 0x7fca439b5908 in services_discovery_AddItem ../../include/vlc_services_discovery.h:160
[#10](https://code.videolan.org/videolan/vlc/-/issues/10) 0x7fca439b74d1 in input_subnode_added ../../modules/services_discovery/mediadirs.c:259
[#11](https://code.videolan.org/videolan/vlc/-/issues/11) 0x7fca769068de in vlc_event_send ../../src/misc/events.c:112
[#12](https://code.videolan.org/videolan/vlc/-/issues/12) 0x7fca76a70fc7 in input_item_node_PostAndDelete ../../src/input/item.c:1321
[#13](https://code.videolan.org/videolan/vlc/-/issues/13) 0x7fca2c3abd9d in Demux ../../modules/demux/directory.c:45
[#14](https://code.videolan.org/videolan/vlc/-/issues/14) 0x7fca76a01b00 in demux_Demux.lto_priv.3786 ../../include/vlc_demux.h:347
[#15](https://code.videolan.org/videolan/vlc/-/issues/15) 0x7fca76a06913 in MainLoopDemux ../../src/input/input.c:559
[#16](https://code.videolan.org/videolan/vlc/-/issues/16) 0x7fca76a08000 in MainLoop ../../src/input/input.c:705
[#17](https://code.videolan.org/videolan/vlc/-/issues/17) 0x7fca76a03718 in input_Read ../../src/input/input.c:149
[#18](https://code.videolan.org/videolan/vlc/-/issues/18) 0x7fca439b6f20 in Run ../../modules/services_discovery/mediadirs.c:212
[#19](https://code.videolan.org/videolan/vlc/-/issues/19) 0x7fca7598e493 in start_thread (/lib/x86_64-linux-gnu/libpthread.so.0+0x7493)