Fix segmentation fault when random token
[src/app-framework-binder.git] / src / main.c
index 0405fd1..bffcb38 100644 (file)
@@ -397,6 +397,7 @@ static int execute_command()
 {
        struct sigaction siga;
        char port[20];
+       const char *token;
        int rc;
 
        /* check whether a command is to execute or not */
@@ -427,8 +428,9 @@ static int execute_command()
        }
        else {
                /* instanciate arguments and environment */
-               if (instanciate_command_args(port, config->token) >= 0
-                && instanciate_environ(port, config->token) >= 0) {
+               token = afb_session_initial_token();
+               if (instanciate_command_args(port, token) >= 0
+                && instanciate_environ(port, token) >= 0) {
                        /* run */
                        if (!SELF_PGROUP)
                                setpgid(0, 0);
@@ -591,11 +593,11 @@ static void start(int signum)
 
        /* load bindings */
        afb_debug("start-load");
+       apiset_start_list(config->so_bindings, afb_api_so_add_binding, "the binding");
        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_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");
        apiset_start_list(config->ws_servers, afb_api_ws_add_server, "the afb-websocket service");
@@ -650,12 +652,12 @@ int main(int argc, char *argv[])
 
        // ------------- Build session handler & init config -------
        config = afb_config_parse_arguments(argc, argv);
-
-       afb_debug("main-args");
        if (config->name) {
+               verbose_set_name(config->name, 0);
                process_name_set_name(config->name);
                process_name_replace_cmdline(argv, config->name);
        }
+       afb_debug("main-args");
 
        // --------- run -----------
        if (config->background) {