From: Olaf Hering Date: Tue, 15 Dec 2015 00:01:37 +0000 (-0800) Subject: Drivers: hv: utils: use memdup_user in hvt_op_write X-Git-Tag: v4.1.12-124.31.3~891 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=d02a8eea3850e08488e03b9f61cc3d9f73630c95;p=users%2Fjedix%2Flinux-maple.git Drivers: hv: utils: use memdup_user in hvt_op_write Use memdup_user to handle OOM. Fixes: 14b50f80c32d ('Drivers: hv: util: introduce hv_utils_transport abstraction') Signed-off-by: Olaf Hering Signed-off-by: K. Y. Srinivasan Signed-off-by: Greg Kroah-Hartman Orabug: 27426102 (cherry picked from commit b00359642c2427da89dc8f77daa2c9e8a84e6d76) Signed-off-by: Jack Vogel Reviewed-by: Tim Tianyang Chen --- diff --git a/drivers/hv/hv_utils_transport.c b/drivers/hv/hv_utils_transport.c index 1505ee6e6605..24b2766a6d34 100644 --- a/drivers/hv/hv_utils_transport.c +++ b/drivers/hv/hv_utils_transport.c @@ -80,11 +80,10 @@ static ssize_t hvt_op_write(struct file *file, const char __user *buf, hvt = container_of(file->f_op, struct hvutil_transport, fops); - inmsg = kzalloc(count, GFP_KERNEL); - if (copy_from_user(inmsg, buf, count)) { - kfree(inmsg); - return -EFAULT; - } + inmsg = memdup_user(buf, count); + if (IS_ERR(inmsg)) + return PTR_ERR(inmsg); + if (hvt->on_msg(inmsg, count)) return -EFAULT; kfree(inmsg);