On Wed, 13 Jun 2007 18:01:25 -0500
"Serge E. Hallyn" <[EMAIL PROTECTED]> wrote:

> @@ -177,6 +184,15 @@ int unshare_nsproxy_namespaces(unsigned long 
> unshare_flags,
>       if (IS_ERR(*new_nsp)) {
>               err = PTR_ERR(*new_nsp);
>               put_nsproxy(old_ns);
> +             goto out;
> +     }
> +
> +     err = ns_container_clone(current);
> +     if (err) {
> +             put_nsproxy(*new_nsp);
> +             put_nsproxy(old_ns);
>       }
> +
> +out:
>       return err;
>  }

I had to fix a reject here: the put_nsproxy(old_ns) has disappeared from
this code.

end result:

int unshare_nsproxy_namespaces(unsigned long unshare_flags,
                struct nsproxy **new_nsp, struct fs_struct *new_fs)
{
        int err = 0;

        if (!(unshare_flags & (CLONE_NEWNS | CLONE_NEWUTS | CLONE_NEWIPC |
                               CLONE_NEWUSER)))
                return 0;

        if (!capable(CAP_SYS_ADMIN))
                return -EPERM;

        *new_nsp = create_new_namespaces(unshare_flags, current,
                                new_fs ? new_fs : current->fs);
        if (IS_ERR(*new_nsp))
                err = PTR_ERR(*new_nsp);
                goto out;
        }

        err = ns_container_clone(current);
        if (err)
                put_nsproxy(*new_nsp);

out:
        return err;
}


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
ckrm-tech mailing list
https://lists.sourceforge.net/lists/listinfo/ckrm-tech

Reply via email to