|
@@ -3702,16 +3702,10 @@ static ssize_t i915_displayport_test_active_write(struct file *file,
|
|
if (len == 0)
|
|
if (len == 0)
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
- input_buffer = kmalloc(len + 1, GFP_KERNEL);
|
|
|
|
- if (!input_buffer)
|
|
|
|
- return -ENOMEM;
|
|
|
|
|
|
+ input_buffer = memdup_user_nul(ubuf, len);
|
|
|
|
+ if (IS_ERR(input_buffer))
|
|
|
|
+ return PTR_ERR(input_buffer);
|
|
|
|
|
|
- if (copy_from_user(input_buffer, ubuf, len)) {
|
|
|
|
- status = -EFAULT;
|
|
|
|
- goto out;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- input_buffer[len] = '\0';
|
|
|
|
DRM_DEBUG_DRIVER("Copied %d bytes from user\n", (unsigned int)len);
|
|
DRM_DEBUG_DRIVER("Copied %d bytes from user\n", (unsigned int)len);
|
|
|
|
|
|
drm_connector_list_iter_begin(dev, &conn_iter);
|
|
drm_connector_list_iter_begin(dev, &conn_iter);
|
|
@@ -3737,7 +3731,6 @@ static ssize_t i915_displayport_test_active_write(struct file *file,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
drm_connector_list_iter_end(&conn_iter);
|
|
drm_connector_list_iter_end(&conn_iter);
|
|
-out:
|
|
|
|
kfree(input_buffer);
|
|
kfree(input_buffer);
|
|
if (status < 0)
|
|
if (status < 0)
|
|
return status;
|
|
return status;
|