Loading drivers/scsi/esas2r/esas2r_ioctl.c +3 −22 Original line number Diff line number Diff line Loading @@ -1289,32 +1289,13 @@ int esas2r_ioctl_handler(void *hostdata, int cmd, void __user *arg) || (cmd > EXPRESS_IOCTL_MAX)) return -ENOTSUPP; if (!access_ok(VERIFY_WRITE, arg, sizeof(struct atto_express_ioctl))) { ioctl = memdup_user(arg, sizeof(struct atto_express_ioctl)); if (IS_ERR(ioctl)) { esas2r_log(ESAS2R_LOG_WARN, "ioctl_handler access_ok failed for cmd %d, " "address %p", cmd, arg); return -EFAULT; } /* allocate a kernel memory buffer for the IOCTL data */ ioctl = kzalloc(sizeof(struct atto_express_ioctl), GFP_KERNEL); if (ioctl == NULL) { esas2r_log(ESAS2R_LOG_WARN, "ioctl_handler kzalloc failed for %zu bytes", sizeof(struct atto_express_ioctl)); return -ENOMEM; } err = __copy_from_user(ioctl, arg, sizeof(struct atto_express_ioctl)); if (err != 0) { esas2r_log(ESAS2R_LOG_WARN, "copy_from_user didn't copy everything (err %d, cmd %d)", err, cmd); kfree(ioctl); return -EFAULT; return PTR_ERR(ioctl); } /* verify the signature */ Loading Loading
drivers/scsi/esas2r/esas2r_ioctl.c +3 −22 Original line number Diff line number Diff line Loading @@ -1289,32 +1289,13 @@ int esas2r_ioctl_handler(void *hostdata, int cmd, void __user *arg) || (cmd > EXPRESS_IOCTL_MAX)) return -ENOTSUPP; if (!access_ok(VERIFY_WRITE, arg, sizeof(struct atto_express_ioctl))) { ioctl = memdup_user(arg, sizeof(struct atto_express_ioctl)); if (IS_ERR(ioctl)) { esas2r_log(ESAS2R_LOG_WARN, "ioctl_handler access_ok failed for cmd %d, " "address %p", cmd, arg); return -EFAULT; } /* allocate a kernel memory buffer for the IOCTL data */ ioctl = kzalloc(sizeof(struct atto_express_ioctl), GFP_KERNEL); if (ioctl == NULL) { esas2r_log(ESAS2R_LOG_WARN, "ioctl_handler kzalloc failed for %zu bytes", sizeof(struct atto_express_ioctl)); return -ENOMEM; } err = __copy_from_user(ioctl, arg, sizeof(struct atto_express_ioctl)); if (err != 0) { esas2r_log(ESAS2R_LOG_WARN, "copy_from_user didn't copy everything (err %d, cmd %d)", err, cmd); kfree(ioctl); return -EFAULT; return PTR_ERR(ioctl); } /* verify the signature */ Loading