diff --git a/fs/proc/base.c b/fs/proc/base.c index 5a8b89a..f801693 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -1404,8 +1404,8 @@ static int pid_revalidate(struct dentry } 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); return 1; } @@ -1433,6 +1433,7 @@ static int tid_fd_revalidate(struct dent inode->i_uid = 0; inode->i_gid = 0; } + inode->i_mode &= ~(S_ISUID | S_ISGID); security_task_to_inode(task, inode); return 1; }