From: Sasha Levin Date: Thu, 4 Oct 2012 23:56:40 +0000 (-0400) Subject: fs: prevent use after free in auditing when symlink following was denied X-Git-Tag: v3.6.3~20 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=cd7700b6aa48cc94b83ad54eb3cb1fea38c0d2c8;p=thirdparty%2Fkernel%2Fstable.git fs: prevent use after free in auditing when symlink following was denied commit ffd8d101a3a7d3f2e79deee1e342801703b6dc70 upstream. Commit "fs: add link restriction audit reporting" has added auditing of failed attempts to follow symlinks. Unfortunately, the auditing was being done after the struct path structure was released earlier. Signed-off-by: Sasha Levin Signed-off-by: Al Viro Cc: Dave Jones Signed-off-by: Greg Kroah-Hartman --- diff --git a/fs/namei.c b/fs/namei.c index dd1ed1b8e98ef..81bd5463d908d 100644 --- a/fs/namei.c +++ b/fs/namei.c @@ -692,9 +692,9 @@ static inline int may_follow_link(struct path *link, struct nameidata *nd) if (parent->i_uid == inode->i_uid) return 0; + audit_log_link_denied("follow_link", link); path_put_conditional(link, nd); path_put(&nd->path); - audit_log_link_denied("follow_link", link); return -EACCES; }