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
This commit is contained in:
commit
fe547d7714
|
@ -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);
|
||||||
|
|
Reference in New Issue