From 1d75f753d8dd4c4230b8d209c03d77e623ecc505 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sat, 12 May 2012 14:12:23 +0000 Subject: don't load symlinks when trying to discover control protocol shared objects git-svn-id: svn://localhost/ardour2/branches/3.0@12257 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/ardour/control_protocol_manager.cc | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'libs/ardour/control_protocol_manager.cc') diff --git a/libs/ardour/control_protocol_manager.cc b/libs/ardour/control_protocol_manager.cc index cce9fe08a1..59001dce14 100644 --- a/libs/ardour/control_protocol_manager.cc +++ b/libs/ardour/control_protocol_manager.cc @@ -19,6 +19,8 @@ #include +#include + #include "pbd/compose.h" #include "pbd/file_utils.h" #include "pbd/error.h" @@ -202,10 +204,10 @@ ControlProtocolManager::discover_control_protocols () Glib::PatternSpec dylib_extension_pattern("*.dylib"); find_matching_files_in_search_path (control_protocol_search_path (), - so_extension_pattern, cp_modules); + so_extension_pattern, cp_modules); find_matching_files_in_search_path (control_protocol_search_path (), - dylib_extension_pattern, cp_modules); + dylib_extension_pattern, cp_modules); DEBUG_TRACE (DEBUG::ControlProtocols, string_compose (_("looking for control protocols in %1"), control_protocol_search_path().to_string())); @@ -220,6 +222,13 @@ ControlProtocolManager::control_protocol_discover (string path) { ControlProtocolDescriptor* descriptor; + /* don't load shared objects that are just symlinks to the real thing. + */ + + if (Glib::file_test (path, Glib::FILE_TEST_IS_SYMLINK)) { + return 0; + } + if ((descriptor = get_descriptor (path)) != 0) { if (!descriptor->probe (descriptor)) { -- cgit v1.2.3