Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 261aeba8 authored by Geliang Tang's avatar Geliang Tang Committed by Daniel Vetter
Browse files

drm/i915: use memdup_user_nul

parent 6f38123e
Loading
Loading
Loading
Loading
+3 −10
Original line number Original line Diff line number Diff line
@@ -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);
	input_buffer = memdup_user_nul(ubuf, len);
	if (!input_buffer)
	if (IS_ERR(input_buffer))
		return -ENOMEM;
		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;
+3 −10
Original line number Original line Diff line number Diff line
@@ -853,19 +853,12 @@ static ssize_t display_crc_ctl_write(struct file *file, const char __user *ubuf,
		return -E2BIG;
		return -E2BIG;
	}
	}


	tmpbuf = kmalloc(len + 1, GFP_KERNEL);
	tmpbuf = memdup_user_nul(ubuf, len);
	if (!tmpbuf)
	if (IS_ERR(tmpbuf))
		return -ENOMEM;
		return PTR_ERR(tmpbuf);

	if (copy_from_user(tmpbuf, ubuf, len)) {
		ret = -EFAULT;
		goto out;
	}
	tmpbuf[len] = '\0';


	ret = display_crc_ctl_parse(dev_priv, tmpbuf, len);
	ret = display_crc_ctl_parse(dev_priv, tmpbuf, len);


out:
	kfree(tmpbuf);
	kfree(tmpbuf);
	if (ret < 0)
	if (ret < 0)
		return ret;
		return ret;