Skip to contentSkip to conversation

vmwgfx: return an -EFAULT if copy_to_user() fails

PATCH In review Dan Carpenter 2 participants 2 messages Nov 12, 2012 – Nov 13, 2012

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 vmwgfx: return an -EFAULT if copy_to_user() fails

copy_to_user() returns the number of bytes remaining to be copied, but we want to return a negative error code here. I fixed a couple of these last year, but I missed this one.

---
I think there were only three copy_to/from_user() functions in this file and they're all fixed now.

drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c +2 -0
index b07ca2e..7290811 100644
@@ -110,6 +110,8 @@ int vmw_get_cap_3d_ioctl(struct drm_device *dev, void *data,
 	memcpy_fromio(bounce, &fifo_mem[SVGA_FIFO_3D_CAPS], size);
 
 	ret = copy_to_user(buffer, bounce, size);
+	if (ret)
+		ret = -EFAULT;
 	vfree(bounce);
 
 	if (unlikely(ret != 0))
Reviewed-by on v1 1/1
#1 lore raw
Quoted 14 lines · Dan Carpenter

copy_to_user() returns the number of bytes remaining to be copied, but we want to return a negative error code here. I fixed a couple of these last year, but I missed this one.

---
I think there were only three copy_to/from_user() functions in this file and they're all fixed now.

drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c +0 -0
index b07ca2e..7290811 100644

drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c int vmw_get_cap_3d_ioctl(struct drm_device *dev, void *data, · line 117

Quoted 8 lines
drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c +2 -0
@@ -110,6 +110,8 @@ int vmw_get_cap_3d_ioctl(struct drm_device *dev, void *data,
  	memcpy_fromio(bounce, &fifo_mem[SVGA_FIFO_3D_CAPS], size);
 
  	ret = copy_to_user(buffer, bounce, size);
+	if (ret)
+		ret = -EFAULT;
  	vfree(bounce);
 
  	if (unlikely(ret != 0))