diff src/helper.cpp @ 51:dd193244d97d

Remove newlines from error messages; try to do something sensible with security errors
author Chris Cannam
date Fri, 02 Nov 2018 14:39:51 +0000
parents 5f91094e5680
children 17fb9ff8e072
line wrap: on
line diff
--- a/src/helper.cpp	Thu Oct 11 15:55:17 2018 +0100
+++ b/src/helper.cpp	Fri Nov 02 14:39:51 2018 +0000
@@ -253,6 +253,12 @@
 #else
         if (!libraryExists(soname)) {
             code = PluginCheckCode::FAIL_LIBRARY_NOT_FOUND;
+        } else if (errno == EPERM) {
+            // This may be unreliable, but it seems to be set by
+            // something dlopen() calls in the case where a library
+            // can't be loaded for code-signing-related reasons on
+            // macOS
+            code = PluginCheckCode::FAIL_FORBIDDEN;
         }
 #endif
         return { code, message };
@@ -375,6 +381,12 @@
                 cout << "FAILURE|" << soname
                      << "|[" << int(result.code) << "]" << endl;
             } else {
+                for (size_t i = 0; i < result.message.size(); ++i) {
+                    if (result.message[i] == '\n' ||
+                        result.message[i] == '\r') {
+                        result.message[i] = ' ';
+                    }
+                }
                 cout << "FAILURE|" << soname
                      << "|" << result.message << " ["
                      << int(result.code) << "]" << endl;