Fix: run_as gid/uid test should return result to parent
[lttng-tools.git] / src / common / runas.c
index bd51cd4ed2b7b6b8c00221b19209a63dba10c698..6979ad3257c1da144955b6567ad7ce16afacdbaa 100644 (file)
@@ -130,14 +130,16 @@ int child_run_as(void *_data)
                ret = setegid(data->gid);
                if (ret < 0) {
                        PERROR("setegid");
-                       return EXIT_FAILURE;
+                       sendret.i = -1;
+                       goto write_return;
                }
        }
        if (data->uid != geteuid()) {
                ret = seteuid(data->uid);
                if (ret < 0) {
                        PERROR("seteuid");
-                       return EXIT_FAILURE;
+                       sendret.i = -1;
+                       goto write_return;
                }
        }
        /*
@@ -145,6 +147,8 @@ int child_run_as(void *_data)
         */
        umask(0);
        sendret.i = (*data->cmd)(data->data);
+
+write_return:
        /* send back return value */
        writeleft = sizeof(sendret);
        index = 0;
This page took 0.024277 seconds and 4 git commands to generate.