From a5822a0847e8d2980ee1d04f96ef78b9597928c8 Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Tue, 8 Apr 2014 16:04:11 -0700 Subject: [PATCH] autofs4: check dev ioctl size before allocating commit e53d77eb8bb616e903e34cc7a918401bee3b5149 upstream. There wasn't any check of the size passed from userspace before trying to allocate the memory required. This meant that userspace might request more space than allowed, triggering an OOM. Signed-off-by: Sasha Levin Signed-off-by: Ian Kent Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds [lizf: Backported to 3.4: adjust context] Signed-off-by: Zefan Li --- fs/autofs4/dev-ioctl.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/autofs4/dev-ioctl.c b/fs/autofs4/dev-ioctl.c index fbaa42817389f..ace3eea163f0f 100644 --- a/fs/autofs4/dev-ioctl.c +++ b/fs/autofs4/dev-ioctl.c @@ -103,6 +103,9 @@ static struct autofs_dev_ioctl *copy_dev_ioctl(struct autofs_dev_ioctl __user *i if (tmp.size < sizeof(tmp)) return ERR_PTR(-EINVAL); + if (tmp.size > (PATH_MAX + sizeof(tmp))) + return ERR_PTR(-ENAMETOOLONG); + res = memdup_user(in, tmp.size); if (!IS_ERR(res)) res->size = tmp.size; -- 2.47.2