2007-10-26 07:11:31

by John Johansen

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

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 <[email protected]>
Signed-off-by: John Johansen <[email protected]>

---
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
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);
}


--


2007-10-26 12:35:18

by Stephen Smalley

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

On Thu, 2007-10-25 at 23:40 -0700, [email protected] 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 <[email protected]>
> Signed-off-by: John Johansen <[email protected]>
>
> ---
> 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

2007-10-26 18:25:11

by John Johansen

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

On Fri, Oct 26, 2007 at 08:32:23AM -0400, Stephen Smalley wrote:
> On Thu, 2007-10-25 at 23:40 -0700, [email protected] 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 <[email protected]>
> > Signed-off-by: John Johansen <[email protected]>
> >
> > ---
> > 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?
>
Oops, thanks I missed that one.

regards
john


Attachments:
(No filename) (888.00 B)
(No filename) (189.00 B)
Download all attachments