Fix: report setegid()/seteuid() failure in runas
[lttng-tools.git] / src / common / runas.c
index 3916d6754314eadd4947b576dbcb4d98273ad861..9fe6dcd58efaaa5f4c551efa0ba5e03017837543 100644 (file)
@@ -528,6 +528,8 @@ int handle_one_cmd(struct run_as_worker *worker)
        if (data.gid != getegid()) {
                ret = setegid(data.gid);
                if (ret < 0) {
+                       sendret._error = true;
+                       sendret._errno = errno;
                        PERROR("setegid");
                        goto write_return;
                }
@@ -535,6 +537,8 @@ int handle_one_cmd(struct run_as_worker *worker)
        if (data.uid != prev_euid) {
                ret = seteuid(data.uid);
                if (ret < 0) {
+                       sendret._error = true;
+                       sendret._errno = errno;
                        PERROR("seteuid");
                        goto write_return;
                }
@@ -710,6 +714,7 @@ int run_as_cmd(struct run_as_worker *worker,
                PERROR("Error reading response from run_as");
                ret = -1;
                ret_value->_errno = errno;
+               goto end;
        }
 
        /*
This page took 0.024801 seconds and 4 git commands to generate.