Messages in this thread | | | Date | Tue, 14 Oct 2008 10:53:59 -0500 | From | "Serge E. Hallyn" <> | Subject | Re: [PATCH 2/3] integrity: Linux Integrity Module(LIM) |
| |
Quoting david safford (safford@watson.ibm.com): > On Tue, 2008-10-14 at 09:28 -0400, Christoph Hellwig wrote: > > > int vfs_permission(struct nameidata *nd, int mask) > > > { > > > - return inode_permission(nd->path.dentry->d_inode, mask); > > > + int retval; > > > + > > > + retval = inode_permission(nd->path.dentry->d_inode, mask); > > > + if (retval) > > > + return retval; > > > + return integrity_inode_permission(NULL, &nd->path, > > > + mask & (MAY_READ | MAY_WRITE | > > > + MAY_EXEC)); > > > } > > > > > > /** > > > @@ -306,7 +314,14 @@ int vfs_permission(struct nameidata *nd, int mask) > > > */ > > > int file_permission(struct file *file, int mask) > > > { > > > - return inode_permission(file->f_path.dentry->d_inode, mask); > > > + int retval; > > > + > > > + retval = inode_permission(file->f_path.dentry->d_inode, mask); > > > + if (retval) > > > + return retval; > > > + return integrity_inode_permission(file, NULL, > > > + mask & (MAY_READ | MAY_WRITE | > > > + MAY_EXEC)); > > > > Please don't add anything here as these two wrappers will go away. > > Please only make decisions based on what you get in inode_permission(). > > Hmm... As Mimi mentioned in the last review, we really need access > to a path, which is not available in inode_permission. (Note the > path is not used to make any integrity decision, but is recorded along > with the measurement to help with the integrity analysis by a third > party verifier.) Yes, there are other callers without path information, > but getting a path here covers the bulk of the measurements. > > Is there some other alternative, other than this, or passing the > dentry into inode_permission, which was also rejected?
Whatever happened to the patch Mimi had floated to use the audit subsystem to output a pathname? I thought that was pretty neat, and it made particularly clear the the pathname was purely informational.
-serge
| |