Commit 718b303b authored by Tomohiro Kusumi's avatar Tomohiro Kusumi Committed by Linus Torvalds

autofs: use AUTOFS_DEV_IOCTL_SIZE

Use a macro which defines misc-dev ioctl parameter size (excluding a path
beyond &path[0]) since it's been used to initialize and copy this
structure ever since it first appeared in 8d7b48e0 in 2008.

(or simply get rid of this if this is just unnecessary abstraction when
all it needs is sizeof(struct autofs_dev_ioctl))

Edit: raven@themaw.net
That's a good point but I'd prefer to keep the macro define.
End edit: raven@themaw.net

Link: http://lkml.kernel.org/r/150285068577.4670.2599968823770600622.stgit@pluto.themaw.netSigned-off-by: default avatarTomohiro Kusumi <tkusumi@tuxera.com>
Signed-off-by: default avatarIan Kent <raven@themaw.net>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent ed837d09
...@@ -97,13 +97,13 @@ static struct autofs_dev_ioctl * ...@@ -97,13 +97,13 @@ static struct autofs_dev_ioctl *
{ {
struct autofs_dev_ioctl tmp, *res; struct autofs_dev_ioctl tmp, *res;
if (copy_from_user(&tmp, in, sizeof(tmp))) if (copy_from_user(&tmp, in, AUTOFS_DEV_IOCTL_SIZE))
return ERR_PTR(-EFAULT); return ERR_PTR(-EFAULT);
if (tmp.size < sizeof(tmp)) if (tmp.size < AUTOFS_DEV_IOCTL_SIZE)
return ERR_PTR(-EINVAL); return ERR_PTR(-EINVAL);
if (tmp.size > (PATH_MAX + sizeof(tmp))) if (tmp.size > AUTOFS_DEV_IOCTL_SIZE + PATH_MAX)
return ERR_PTR(-ENAMETOOLONG); return ERR_PTR(-ENAMETOOLONG);
res = memdup_user(in, tmp.size); res = memdup_user(in, tmp.size);
...@@ -133,8 +133,8 @@ static int validate_dev_ioctl(int cmd, struct autofs_dev_ioctl *param) ...@@ -133,8 +133,8 @@ static int validate_dev_ioctl(int cmd, struct autofs_dev_ioctl *param)
goto out; goto out;
} }
if (param->size > sizeof(*param)) { if (param->size > AUTOFS_DEV_IOCTL_SIZE) {
err = invalid_str(param->path, param->size - sizeof(*param)); err = invalid_str(param->path, param->size - AUTOFS_DEV_IOCTL_SIZE);
if (err) { if (err) {
pr_warn( pr_warn(
"path string terminator missing for cmd(0x%08x)\n", "path string terminator missing for cmd(0x%08x)\n",
...@@ -451,7 +451,7 @@ static int autofs_dev_ioctl_requester(struct file *fp, ...@@ -451,7 +451,7 @@ static int autofs_dev_ioctl_requester(struct file *fp,
dev_t devid; dev_t devid;
int err = -ENOENT; int err = -ENOENT;
if (param->size <= sizeof(*param)) { if (param->size <= AUTOFS_DEV_IOCTL_SIZE) {
err = -EINVAL; err = -EINVAL;
goto out; goto out;
} }
...@@ -539,7 +539,7 @@ static int autofs_dev_ioctl_ismountpoint(struct file *fp, ...@@ -539,7 +539,7 @@ static int autofs_dev_ioctl_ismountpoint(struct file *fp,
unsigned int devid, magic; unsigned int devid, magic;
int err = -ENOENT; int err = -ENOENT;
if (param->size <= sizeof(*param)) { if (param->size <= AUTOFS_DEV_IOCTL_SIZE) {
err = -EINVAL; err = -EINVAL;
goto out; goto out;
} }
......
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