diff --git a/[refs] b/[refs] index 4530da54e725..2ba3a83350e3 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 18b0bbd8ca6d3cb90425aa0d77b99a762c6d6de3 +refs/heads/master: 9ee8ab9fbf21e6b87ad227cd46c0a4be41ab749b diff --git a/trunk/fs/proc/base.c b/trunk/fs/proc/base.c index 0cb8f20d000c..474eae345068 100644 --- a/trunk/fs/proc/base.c +++ b/trunk/fs/proc/base.c @@ -1338,8 +1338,8 @@ static int pid_revalidate(struct dentry *dentry, struct nameidata *nd) } else { inode->i_uid = 0; inode->i_gid = 0; - inode->i_mode = 0; } + inode->i_mode &= ~(S_ISUID | S_ISGID); security_task_to_inode(task, inode); put_task_struct(task); return 1; @@ -1390,6 +1390,7 @@ static int tid_fd_revalidate(struct dentry *dentry, struct nameidata *nd) inode->i_uid = 0; inode->i_gid = 0; } + inode->i_mode &= ~(S_ISUID | S_ISGID); security_task_to_inode(task, inode); put_task_struct(task); return 1;