diff --git a/kernel/supercalls.c b/kernel/supercalls.c index f0143f86..9a91f140 100644 --- a/kernel/supercalls.c +++ b/kernel/supercalls.c @@ -399,6 +399,8 @@ static int do_get_wrapper_fd(void __user *arg) { struct file* pf = fget(ret); struct inode* wrapper_inode = file_inode(pf); + // copy original inode mode + wrapper_inode->i_mode = file_inode(f)->i_mode; struct inode_security_struct *sec = selinux_inode(wrapper_inode); if (sec) { sec->sid = ksu_file_sid;