Re: [AppArmor 35/45] Allow permission functions to tell between parent and leaf checks

Stephen Smalley
2007-10-26T12:35:18Z

On Thu, 2007-10-25 at 23:40 -0700, jjohansen@suse.de wrote:
> plain text document attachment (parent-permission.diff)
> Set the LOOKUP_CONTINUE flag when checking parent permissions. This allows
> permission functions to tell between parent and leaf checks.
>
> Signed-off-by: Andreas Gruenbacher <agruen@suse.de>
> Signed-off-by: John Johansen <jjohansen@suse.de>
>
> ---
> fs/namei.c | 6 ++++++
> 1 file changed, 6 insertions(+)
>
> --- a/fs/namei.c
> +++ b/fs/namei.c
> @@ -1472,6 +1472,10 @@ static int may_delete(struct inode *dir,
> BUG_ON(victim->d_parent->d_inode != dir);
> audit_inode_child(victim->d_name.name, victim, dir);
>
> +#if 0
> + if (nd)
> + nd->flags |= LOOKUP_CONTINUE;
> +#endif

#if 0?

> error = permission(dir,MAY_WRITE | MAY_EXEC, NULL);
> if (error)
> return error;
> @@ -1509,6 +1513,8 @@ static inline int may_create(struct inod
> return -EEXIST;
> if (IS_DEADDIR(dir))
> return -ENOENT;
> + if (nd)
> + nd->flags |= LOOKUP_CONTINUE;
> return permission(dir,MAY_WRITE | MAY_EXEC, nd);
> }
>
>
--
Stephen Smalley
National Security Agency