tcmu: Fix some memory corruption
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 8 Nov 2017 08:43:44 +0000 (11:43 +0300)
committerNicholas Bellinger <nab@linux-iscsi.org>
Wed, 8 Nov 2017 09:42:31 +0000 (01:42 -0800)
"udev->nl_reply_supported" is an int but on 64 bit arches we are writing
8 bytes of data to it so it corrupts four bytes beyond the end of the
struct.

Fixes: b849b4567549 ("target: Add netlink command reply supported option for each device")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_user.c

index 9ddf0909d33e8b0fc5af0666deca1d34c62f72db..d2b8d5ccb446086de7f5ac53f8b85c497fdd8996 100644 (file)
@@ -1724,11 +1724,10 @@ static ssize_t tcmu_set_configfs_dev_params(struct se_device *dev,
                                ret = -ENOMEM;
                                break;
                        }
-                       ret = kstrtol(arg_p, 0,
-                                       (long int *) &udev->nl_reply_supported);
+                       ret = kstrtoint(arg_p, 0, &udev->nl_reply_supported);
                        kfree(arg_p);
                        if (ret < 0)
-                               pr_err("kstrtoul() failed for nl_reply_supported=\n");
+                               pr_err("kstrtoint() failed for nl_reply_supported=\n");
                        break;
                default:
                        break;