Quoting Dwight Engen (dwight.en...@oracle.com):
> Commit 37c3dfc9 sets the wait status on only the child pid. It
> intended to match the pid only once to protect against pid reuse but it
> won't because the indicator was reset to 0 every time at the top of the
> loop. If the child pid is reused, the wait status will be set again.
> Fix by setting indicator outside the loop.
> 
> Signed-off-by: Dwight Engen <dwight.en...@oracle.com>

Acked-by: Serge E. Hallyn <serge.hal...@ubuntu.com>

> ---
>  src/lxc/lxc_init.c | 11 +++++------
>  1 file changed, 5 insertions(+), 6 deletions(-)
> 
> diff --git a/src/lxc/lxc_init.c b/src/lxc/lxc_init.c
> index 5693da5..c83c2f1 100644
> --- a/src/lxc/lxc_init.c
> +++ b/src/lxc/lxc_init.c
> @@ -63,7 +63,7 @@ int main(int argc, char *argv[])
>       int err = -1;
>       char **aargv;
>       sigset_t mask, omask;
> -     int i, shutdown = 0;
> +     int i, have_status = 0, shutdown = 0;
>  
>       while (1) {
>               int ret = getopt_long_only(argc, argv, "", options, NULL);
> @@ -162,7 +162,6 @@ int main(int argc, char *argv[])
>       err = 0;
>       for (;;) {
>               int status;
> -             int orphan = 0;
>               pid_t waited_pid;
>  
>               switch (was_interrupted) {
> @@ -209,10 +208,10 @@ int main(int argc, char *argv[])
>                * (not wrapped pid) and continue to wait for
>                * the end of the orphan group.
>                */
> -             if ((waited_pid != pid) || (orphan ==1))
> -                     continue;
> -             orphan = 1;
> -             err = lxc_error_set_and_log(waited_pid, status);
> +             if (waited_pid == pid && !have_status) {
> +                     err = lxc_error_set_and_log(waited_pid, status);
> +                     have_status = 1;
> +             }
>       }
>  out:
>       return err;
> -- 
> 1.7.12.3
> 
> 
> ------------------------------------------------------------------------------
> Minimize network downtime and maximize team effectiveness.
> Reduce network management and security costs.Learn how to hire 
> the most talented Cisco Certified professionals. Visit the 
> Employer Resources Portal
> http://www.cisco.com/web/learning/employer_resources/index.html
> _______________________________________________
> Lxc-devel mailing list
> Lxc-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/lxc-devel

------------------------------------------------------------------------------
Minimize network downtime and maximize team effectiveness.
Reduce network management and security costs.Learn how to hire 
the most talented Cisco Certified professionals. Visit the 
Employer Resources Portal
http://www.cisco.com/web/learning/employer_resources/index.html
_______________________________________________
Lxc-devel mailing list
Lxc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-devel

Reply via email to