From af7494ceb243d68e900c3c6464ec1038a2921f32 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 27 Feb 2012 15:21:29 +0000 Subject: Slightly tweaked patch from colinf to avoid crashes on 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 | 2 +- libs/ardour/ladspa_plugin.cc | 13 +++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) (limited to 'libs/ardour') diff --git a/libs/ardour/ardour/ladspa_plugin.h b/libs/ardour/ardour/ladspa_plugin.h index 0dd7f9efac..6853a1dc36 100644 --- a/libs/ardour/ardour/ladspa_plugin.h +++ b/libs/ardour/ardour/ladspa_plugin.h @@ -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; } diff --git a/libs/ardour/ladspa_plugin.cc b/libs/ardour/ladspa_plugin.cc index b9400dd8d8..3a25eab384 100644 --- a/libs/ardour/ladspa_plugin.cc +++ b/libs/ardour/ladspa_plugin.cc @@ -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; +} + + + -- cgit v1.2.3