d_path: Use struct path in struct avc_audit_data
audit_log_d_path() is a d_path() wrapper that is used by the audit code. To use a struct path in audit_log_d_path() I need to embed it into struct avc_audit_data. [akpm@linux-foundation.org: coding-style fixes] Signed-off-by: Jan Blunck <jblunck@suse.de> Acked-by: Christoph Hellwig <hch@infradead.org> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: "J. Bruce Fields" <bfields@fieldses.org> Cc: Neil Brown <neilb@suse.de> Cc: Stephen Smalley <sds@tycho.nsa.gov> Cc: James Morris <jmorris@namei.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
a03a8a709a
commit
44707fdf59
@@ -1312,26 +1312,26 @@ void audit_log_untrustedstring(struct audit_buffer *ab, const char *string)
|
||||
|
||||
/* This is a helper-function to print the escaped d_path */
|
||||
void audit_log_d_path(struct audit_buffer *ab, const char *prefix,
|
||||
struct dentry *dentry, struct vfsmount *vfsmnt)
|
||||
struct path *path)
|
||||
{
|
||||
char *p, *path;
|
||||
char *p, *pathname;
|
||||
|
||||
if (prefix)
|
||||
audit_log_format(ab, " %s", prefix);
|
||||
|
||||
/* We will allow 11 spaces for ' (deleted)' to be appended */
|
||||
path = kmalloc(PATH_MAX+11, ab->gfp_mask);
|
||||
if (!path) {
|
||||
pathname = kmalloc(PATH_MAX+11, ab->gfp_mask);
|
||||
if (!pathname) {
|
||||
audit_log_format(ab, "<no memory>");
|
||||
return;
|
||||
}
|
||||
p = d_path(dentry, vfsmnt, path, PATH_MAX+11);
|
||||
p = d_path(path->dentry, path->mnt, pathname, PATH_MAX+11);
|
||||
if (IS_ERR(p)) { /* Should never happen since we send PATH_MAX */
|
||||
/* FIXME: can we save some information here? */
|
||||
audit_log_format(ab, "<too long>");
|
||||
} else
|
||||
audit_log_untrustedstring(ab, p);
|
||||
kfree(path);
|
||||
kfree(pathname);
|
||||
}
|
||||
|
||||
/**
|
||||
|
Reference in New Issue
Block a user