Skip to content

Commit fe547d7

Browse files
committed
Merge branch 'fix-max-write' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm
Pull dlm fix from David Teigland: "Thanks to Jana who reported the problem and was able to test this fix so quickly." This fixes an incorrect size check that triggered for CONFIG_COMPAT whether the code was actually doing compat or not. The incorrect write size check broke userland (clvmd) when maximum resource name lengths are used. * 'fix-max-write' of git://git.kernel.org/pub/scm/linux/kernel/git/teigland/linux-dlm: dlm: check the write size from user
2 parents 3296944 + d4b0bcf commit fe547d7

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

fs/dlm/user.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -503,11 +503,11 @@ static ssize_t device_write(struct file *file, const char __user *buf,
503503
#endif
504504
return -EINVAL;
505505

506-
#ifdef CONFIG_COMPAT
507-
if (count > sizeof(struct dlm_write_request32) + DLM_RESNAME_MAXLEN)
508-
#else
506+
/*
507+
* can't compare against COMPAT/dlm_write_request32 because
508+
* we don't yet know if is64bit is zero
509+
*/
509510
if (count > sizeof(struct dlm_write_request) + DLM_RESNAME_MAXLEN)
510-
#endif
511511
return -EINVAL;
512512

513513
kbuf = kzalloc(count + 1, GFP_NOFS);

0 commit comments

Comments
 (0)