ardour/libs
Robin Gareus 066df7cc1a
LV2: fix crash when replicating stateful plugin on copy
When copying a mono LV2 plugin to a stereo track, the
state of the copied mono plugin is copied to the replicated
instance.

However at this point in time PBD::Stateful::ForceIDRegeneration
is still enabled, and the state ID has not been set.

This used to not be an issue. Older versions of liblilv
handle non-existent paths just fine.

However in lilv v0.24.20-10-gdd5e851 `lilv_path_absolute`
was replaced with `zix_canonical_path` which returns NULL
if a state file does not [yet] exist. This lead to a segfault
due to strlen(NULL) in `serd_node_new_file_uri`:

#0 strlen -- SEGV on unknown address 0x000000000000
#1 serd_node_new_file_uri () at /lib/x86_64-linux-gnu/libserd-0.so.0
#2 lilv_state_new_from_file () at /lib/x86_64-linux-gnu/liblilv-0.so.0
#3 ARDOUR::LV2Plugin::set_state(XMLNode const&, int) at ../libs/ardour/lv2_plugin.cc:2320
2023-12-15 04:30:45 +01:00
..
aaf Fix a call to 'access()' by adding a call to 'uriDecodeString()' 2023-12-13 16:13:11 +00:00
appleutility wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
ardour LV2: fix crash when replicating stateful plugin on copy 2023-12-15 04:30:45 +01:00
ardouralsautil wscript: drop repeated autowaf.set_options - it is enough to set at top level 2023-10-15 10:47:16 -06:00
audiographer wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
auscan wscript: sanitize strings from fetch_*_revision_date early instead of applying str() all over 2023-10-15 10:47:16 -06:00
backends Fix callback order of port-dis/connections 2023-12-02 23:34:58 +01:00
canvas Fix alloc-dealloc-mismatch (video image) 2023-12-12 20:36:55 +01:00
clearlooks-newer Clearlooks: GtkCList is deprecated and not used by Ardour 2023-11-19 20:28:44 +01:00
ctrl-interface midisurface: use correct virtual method for note off 2023-10-31 09:56:40 -06:00
evoral Sanitize MIDI track names, remove unprintable chars #9553 2023-11-28 00:29:19 +01:00
fluidsynth wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
fst wscript: sanitize strings from fetch_*_revision_date early instead of applying str() all over 2023-10-15 10:47:16 -06:00
gtkmm2ext Allow to override visibility tracker 2023-11-26 20:06:35 +01:00
hidapi wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
libltc wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
lua wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
midi++2 wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
panners wscript: don't add pointless -DHAVE_X for each mandatory subdir 2023-10-15 10:47:16 -06:00
pbd Fix localtime_r check (#9554) 2023-11-28 17:05:03 +01:00
plugins wscript: drop repeated autowaf.set_options - it is enough to set at top level 2023-10-15 10:47:16 -06:00
ptformat wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
qm-dsp wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
surfaces UF8 for everyone 2023-12-12 03:38:50 +01:00
temporal temporal: remove TempoMap::insert_time() and use shift() instead 2023-11-19 12:14:10 -07:00
vamp-plugins wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
vamp-pyin wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
vfork wscript: drop repeated autowaf.set_options - it is enough to set at top level 2023-10-15 10:47:16 -06:00
vst3 Use <atomic> instead of <stdatomic.h> in libc++ fix 2023-09-23 23:53:05 +02:00
waveview wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
widgets wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
zita-convolver wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00
zita-resampler wscript: drop traces of shutdown() handling 2023-10-15 10:47:16 -06:00