Merged!

David

Mathieu Desnoyers:
> Failure to do so could cause the parent to hang on read() waiting for
> the return value from the child.
> 
> Targets: 2.3-rc and stable-2.2 branches.
>  
> Signed-off-by: Mathieu Desnoyers <[email protected]>
> ---
> diff --git a/src/common/runas.c b/src/common/runas.c
> index bd51cd4..6979ad3 100644
> --- a/src/common/runas.c
> +++ b/src/common/runas.c
> @@ -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;
> 

_______________________________________________
lttng-dev mailing list
[email protected]
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

Reply via email to