Skip to content

Commit f92f0a1

Browse files
cypharbrauner
authored andcommitted
openat2: explicitly return -E2BIG for (usize > PAGE_SIZE)
While we do currently return -EFAULT in this case, it seems prudent to follow the behaviour of other syscalls like clone3. It seems quite unlikely that anyone depends on this error code being EFAULT, but we can always revert this if it turns out to be an issue. Cc: stable@vger.kernel.org # v5.6+ Fixes: fddb5d4 ("open: introduce openat2(2) syscall") Signed-off-by: Aleksa Sarai <cyphar@cyphar.com> Link: https://lore.kernel.org/r/20241010-extensible-structs-check_fields-v3-3-d2833dfe6edd@cyphar.com Signed-off-by: Christian Brauner <brauner@kernel.org>
1 parent 368196e commit f92f0a1

1 file changed

Lines changed: 2 additions & 0 deletions

File tree

fs/open.c

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1457,6 +1457,8 @@ SYSCALL_DEFINE4(openat2, int, dfd, const char __user *, filename,
14571457

14581458
if (unlikely(usize < OPEN_HOW_SIZE_VER0))
14591459
return -EINVAL;
1460+
if (unlikely(usize > PAGE_SIZE))
1461+
return -E2BIG;
14601462

14611463
err = copy_struct_from_user(&tmp, sizeof(tmp), how, usize);
14621464
if (err)

0 commit comments

Comments
 (0)