Hi all,

After some digging, here's what I found out. Even though dssi~ works fine if a plugin_lib:plugin_name is specified, anything other (including bogus names) crashes pd-extended 0.40.3. I tried 0.95 and 0.97 dssi~ external (latter compiled from source) and both exhibit this behavior. Closer inspection of the dssi~ code helped me identify the call that crashes Pd:

(line 1524)
static const char* plugin_tilde_search_plugin (t_dssi_tilde *x,
    const char *name)
{
    char* lib_name = NULL;
    void* user_data[2];

    user_data[0] = (void*)(&lib_name);
    user_data[1] = (void*)name;

    lib_name = NULL;
    LADSPAPluginSearch (dssi_tilde_search_plugin_callback,
        (void*)user_data); //<--this call crashes Pd

    /* The callback (allocates and) writes lib_name, if it finds the plugin */
    return lib_name;
}

When I comment LADSPAPluginSearch, recompile, and run the Pd, then the search for the plugin fails gracefully reporting failure to load plugin. But as soon as the function above is enabled Pd consistently crashes with the same error like the one I reported before:

Warning: no LADSPA_PATH and DSSI_PATH, assuming /usr/lib/ladspa:/usr/local/lib/ladspa:/usr/lib/dssi:/usr/local/lib/dssi
no more csLADSPA plugins
socket receive error: Connection reset by peer (104)
Segmentation fault

This is running on Intrepid with the ladspa-sdk being 1.1 (latest) version. However, upon closer inspection of the search.c in the ladspa-sdk I noticed that there is no such LADSPAPluginSearch function that takes in two arguments, but rather one as follows:

void
LADSPAPluginSearch(LADSPAPluginSearchCallbackFunction fCallbackFunction)

So, what gives? Am I missing something obvious? When compiled in debug mode, dssi~ still manages to list all plugins, followed by "no more csLADSPA plugins" and then crashes as described above. Could it be something with my LADSPA setup?

I guess the easiest thing is to comment this call for the time being and make the dssi~ gracefully fail unless you correctly specify a plugin. Still, I am curious what is making this thing fail.

Best wishes,

Ico