Slightly tweaked patch from colinf to avoid crashes on
authorCarl Hetherington <carl@carlh.net>
Mon, 27 Feb 2012 15:21:29 +0000 (15:21 +0000)
committerCarl Hetherington <carl@carlh.net>
Mon, 27 Feb 2012 15:21:29 +0000 (15:21 +0000)
out-of-range LADSPA port indices (#4700).

git-svn-id: svn://localhost/ardour2/branches/3.0@11528 d708f5d6-7413-0410-9779-e7cbd77b26cf

libs/ardour/ardour/ladspa_plugin.h
libs/ardour/ladspa_plugin.cc

index 0dd7f9efacfe0d4dcd4ca22573be07c6141d812b..6853a1dc367f38c31c6749f1c1035cd96064bf8e 100644 (file)
@@ -113,7 +113,7 @@ class LadspaPlugin : public ARDOUR::Plugin
        LADSPA_Properties           properties() const                { return _descriptor->Properties; }
        uint32_t                    index() const                     { return _index; }
        const char *                copyright() const                 { return _descriptor->Copyright; }
-       LADSPA_PortDescriptor       port_descriptor(uint32_t i) const { return _descriptor->PortDescriptors[i]; }
+       LADSPA_PortDescriptor       port_descriptor(uint32_t i) const;
        const LADSPA_PortRangeHint* port_range_hints() const          { return _descriptor->PortRangeHints; }
        const char * const *        port_names() const                { return _descriptor->PortNames; }
 
index b9400dd8d8d63431982f83a2d5d6f0b75b9a5de2..3a25eab384b758292ddc16e9c444db69a4fda277 100644 (file)
@@ -916,3 +916,16 @@ LadspaPlugin::do_save_preset (string name)
        return uri;
 }
 
+LADSPA_PortDescriptor
+LadspaPlugin::port_descriptor (uint32_t i) const
+{
+       if (i < _descriptor->PortCount) {               
+               return _descriptor->PortDescriptors[i];
+       }
+       
+       warning << "LADSPA plugin port index " << i << " out of range." << endmsg;
+       return 0;
+}
+
+               
+