diff options
author | Roberto Sassu <roberto.sassu@huawei.com> | 2023-06-07 15:24:27 +0200 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2023-06-28 10:29:45 +0200 |
commit | 9bac4a2b7326411a05aca952dde5c453798b62ac (patch) | |
tree | f5b1a9a9b1aba29fdcb33b7126f643d81281af7b | |
parent | 103734b429b9984571a92ce1a4184de79e9f9d13 (diff) | |
download | linux-stable-9bac4a2b7326411a05aca952dde5c453798b62ac.tar.gz linux-stable-9bac4a2b7326411a05aca952dde5c453798b62ac.tar.bz2 linux-stable-9bac4a2b7326411a05aca952dde5c453798b62ac.zip |
memfd: check for non-NULL file_seals in memfd_create() syscall
[ Upstream commit 935d44acf621aa0688fef8312dec3e5940f38f4e ]
Ensure that file_seals is non-NULL before using it in the memfd_create()
syscall. One situation in which memfd_file_seals_ptr() could return a
NULL pointer when CONFIG_SHMEM=n, oopsing the kernel.
Link: https://lkml.kernel.org/r/20230607132427.2867435-1-roberto.sassu@huaweicloud.com
Fixes: 47b9012ecdc7 ("shmem: add sealing support to hugetlb-backed memfd")
Signed-off-by: Roberto Sassu <roberto.sassu@huawei.com>
Cc: Marc-Andr Lureau <marcandre.lureau@redhat.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
-rw-r--r-- | mm/memfd.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/mm/memfd.c b/mm/memfd.c index 475d095dd7f5..a73af8be9c28 100644 --- a/mm/memfd.c +++ b/mm/memfd.c @@ -330,7 +330,8 @@ SYSCALL_DEFINE2(memfd_create, if (flags & MFD_ALLOW_SEALING) { file_seals = memfd_file_seals_ptr(file); - *file_seals &= ~F_SEAL_SEAL; + if (file_seals) + *file_seals &= ~F_SEAL_SEAL; } fd_install(fd, file); |