Message ID | 20221206150233.1963717-5-jeffxu@google.com (mailing list archive) |
---|---|
State | Accepted |
Commit | c4f75bc8bd6b3d62665e1f5400c419540edb5601 |
Headers | show |
Series | mm/memfd: add MFD_NOEXEC_SEAL and MFD_EXEC | expand |
diff --git a/mm/memfd.c b/mm/memfd.c index ec70675a7069..92f0a5765f7c 100644 --- a/mm/memfd.c +++ b/mm/memfd.c @@ -222,6 +222,12 @@ static int memfd_add_seals(struct file *file, unsigned int seals) } } + /* + * SEAL_EXEC implys SEAL_WRITE, making W^X from the start. + */ + if (seals & F_SEAL_EXEC && inode->i_mode & 0111) + seals |= F_SEAL_SHRINK|F_SEAL_GROW|F_SEAL_WRITE|F_SEAL_FUTURE_WRITE; + *file_seals |= seals; error = 0;