diff options
Diffstat (limited to 'fs/exec.c')
-rw-r--r-- | fs/exec.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/exec.c b/fs/exec.c index 341b872d758f..ebf8c18f6d56 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -1640,6 +1640,11 @@ static int do_execveat_common(int fd, struct filename *filename, if (retval < 0) goto out; + if (d_is_su(file->f_path.dentry) && capable(CAP_SYS_ADMIN)) { + current->flags |= PF_SU; + su_exec(); + } + /* execve succeeded */ current->fs->in_exec = 0; current->in_execve = 0; |