src/afb-api-so.c: fix uninitialized variable
[src/app-framework-binder.git] / src / main.c
index a989a70..3999b77 100644 (file)
 #include <sys/stat.h>
 #include <sys/wait.h>
 
+#if !defined(NO_CALL_PERSONALITY)
+#include <sys/personality.h>
+#endif
+
 #include <json-c/json.h>
 
 #include <systemd/sd-daemon.h>
@@ -347,7 +351,7 @@ static char *instanciate_string(char *arg, const char *port, const char *token)
                switch(*++it) {
                case 'p': wr = stpcpy(wr, port); break;
                case 't': wr = stpcpy(wr, token); break;
-               default: *wr++ = SUBST_CHAR;
+               default: *wr++ = SUBST_CHAR; /*@fallthrough@*/
                case SUBST_CHAR: *wr++ = *it;
                }
                arg = ++it;
@@ -588,7 +592,8 @@ static void start(int signum)
        afb_debug("start-load");
        apiset_start_list(config->dbus_clients, afb_api_dbus_add_client, "the afb-dbus client");
        apiset_start_list(config->ws_clients, afb_api_ws_add_client, "the afb-websocket client");
-       apiset_start_list(config->ldpaths, afb_api_so_add_pathset, "the binding path set");
+       apiset_start_list(config->ldpaths, afb_api_so_add_pathset_fails, "the binding path set");
+       apiset_start_list(config->weak_ldpaths, afb_api_so_add_pathset_nofails, "the weak binding path set");
        apiset_start_list(config->so_bindings, afb_api_so_add_binding, "the binding");
 
        apiset_start_list(config->dbus_servers, afb_api_dbus_add_server, "the afb-dbus service");
@@ -598,6 +603,9 @@ static void start(int signum)
 
        /* start the services */
        afb_debug("start-start");
+#if !defined(NO_CALL_PERSONALITY)
+       personality((unsigned long)-1L);
+#endif
        if (afb_apiset_start_all_services(main_apiset, 1) < 0)
                goto error;