Commit fe547d77 authored by Linus Torvalds's avatar Linus Torvalds

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
parents 3296944e d4b0bcf3
...@@ -503,11 +503,11 @@ static ssize_t device_write(struct file *file, const char __user *buf, ...@@ -503,11 +503,11 @@ static ssize_t device_write(struct file *file, const char __user *buf,
#endif #endif
return -EINVAL; return -EINVAL;
#ifdef CONFIG_COMPAT /*
if (count > sizeof(struct dlm_write_request32) + DLM_RESNAME_MAXLEN) * can't compare against COMPAT/dlm_write_request32 because
#else * we don't yet know if is64bit is zero
*/
if (count > sizeof(struct dlm_write_request) + DLM_RESNAME_MAXLEN) if (count > sizeof(struct dlm_write_request) + DLM_RESNAME_MAXLEN)
#endif
return -EINVAL; return -EINVAL;
kbuf = kzalloc(count + 1, GFP_NOFS); kbuf = kzalloc(count + 1, GFP_NOFS);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment