Fix segmentation fault when random token
authorJosé Bollo <jose.bollo@iot.bzh>
Fri, 1 Sep 2017 16:30:17 +0000 (18:30 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Tue, 5 Sep 2017 16:37:25 +0000 (18:37 +0200)
Change-Id: I98795f71dfab1fbc86d694d7ed357ae8387abd5d
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/afb-session.c
src/afb-session.h
src/main.c

index d3e658d..8b56683 100644 (file)
@@ -135,6 +135,11 @@ void afb_session_init (int max_session_count, int timeout, const char *initok)
        }
 }
 
+const char *afb_session_initial_token()
+{
+       return sessions.initok;
+}
+
 static struct afb_session *search (const char* uuid)
 {
        int  idx;
index e79d037..ccedb4a 100644 (file)
@@ -20,6 +20,7 @@
 struct afb_session;
 
 extern void afb_session_init(int max_session_count, int timeout, const char *initok);
+extern const char *afb_session_initial_token();
 
 extern struct afb_session *afb_session_create (const char *uuid, int timeout);
 extern struct afb_session *afb_session_get (const char *uuid, int *created);
index 91c7aae..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);