supercollider/sc3-plugins

LADSPA: ladspalist utility crashes on certain plugins

jamshark70 opened this issue · 1 comments

LADSPA.listPlugins is supposed to print out all the plug-ins that are installed, with their inputs and outputs. A custom binary, ladspalist, is supposed to handle this, but it seems to choke on some plug-ins. When I boot the server, I see "Found 140 LADSPA plugins" but LADSPA.listPlugins shows only two:

LADSPA
#1913 Fast Lookahead limiter
> k: Input gain (dB) (-20 to 20)
> k: Limit (dB) (-20 to 0)
> k: Release time (s) (0.01 to 2)
< k: Attenuation (dB) (0 to 70)
> a: Input 1
> a: Input 2
< a: Output 1
< a: Output 2
< k: latency

#1905 VyNil (Vinyl Effect)
> k: Year (1900 to 1990)
> k: RPM (33 to 78)
> k: Surface warping (0 to 1)
> k: Crackle (0 to 1)
> k: Wear (0 to 1)
> a: Input L
> a: Input R
< a: Output L
< a: Output R

RESULT = 134

I made a debug build and ran it in gdb. This tells me that TAP Reflector[1] is the problem, and there's a bad pointer.

*** glibc detected *** /usr/local/share/SuperCollider/Extensions/SC3plugins/LadspaUGen/ladspalist: free(): invalid pointer: 0x00007ffff79ca778 ***

(gdb) where
#0  0x00007ffff76480d5 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1  0x00007ffff764b83b in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2  0x00007ffff768604e in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#3  0x00007ffff7690846 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
#4  0x00007ffff740f957 in delete_descriptor ()
   from /usr/lib/ladspa/tap_reflector.so
#5  0x00007ffff7dee70e in ?? () from /lib64/ld-linux-x86-64.so.2
#6  0x00007ffff7ded3b4 in ?? () from /lib64/ld-linux-x86-64.so.2
#7  0x00007ffff79d1f26 in ?? () from /lib/x86_64-linux-gnu/libdl.so.2
#8  0x00007ffff7de9176 in ?? () from /lib64/ld-linux-x86-64.so.2
#9  0x00007ffff79d252f in ?? () from /lib/x86_64-linux-gnu/libdl.so.2
#10 0x00007ffff79d1fc1 in dlopen () from /lib/x86_64-linux-gnu/libdl.so.2
#11 0x0000000000400fd9 in LADSPADirectoryPluginSearch (
    pcDirectory=0x603030 "/usr/lib/ladspa", 
    fCallbackFunction=0x400c1c <describePluginLibrary>)
    at /home/dlm/share/sc3-plugins/source/LadspaUGen/search.c:65
#12 0x000000000040113d in LADSPAPluginSearch (
    fCallbackFunction=0x400c1c <describePluginLibrary>)
    at /home/dlm/share/sc3-plugins/source/LadspaUGen/search.c:120
#13 0x0000000000400e99 in main (iArgc=1, ppcArgv=0x7fffffffe058)
    at /home/dlm/share/sc3-plugins/source/LadspaUGen/ladspalist.c:54

Ubuntu 12.04, TAP plugins come from the standard package repository (v. 0.7.1-2fakesync1).

[1] http://tap-plugins.sourceforge.net/ladspa/reflector.html

Perhaps using 'valgrind' instead of gdb can provide more information about the crash?