| From d8ab35575098b2d6dc10b2535aeb40545933ae56 Mon Sep 17 00:00:00 2001 |
| From: Dr. David Alan Gilbert <linux@treblig.org> |
| Date: Mon, 2 Aug 2010 09:43:52 +1000 |
| Subject: drm/radeon/kms: add missing copy from user |
| |
| From: Dr. David Alan Gilbert <linux@treblig.org> |
| |
| commit d8ab35575098b2d6dc10b2535aeb40545933ae56 upstream. |
| |
| This hasn't mattered up until the ioctl started using the value, and it fell |
| apart. |
| |
| fixes fd.o 29340, Ubuntu LP 606081 |
| |
| [airlied: cleaned up whitespace and don't need an error before pushing] |
| |
| Signed-off-by: Dr. David Alan Gilbert <linux@treblig.org> |
| Signed-off-by: Dave Airlie <airlied@redhat.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/gpu/drm/radeon/radeon_kms.c | 4 +++- |
| 1 file changed, 3 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/gpu/drm/radeon/radeon_kms.c |
| +++ b/drivers/gpu/drm/radeon/radeon_kms.c |
| @@ -106,7 +106,9 @@ int radeon_info_ioctl(struct drm_device |
| |
| info = data; |
| value_ptr = (uint32_t *)((unsigned long)info->value); |
| - value = *value_ptr; |
| + if (DRM_COPY_FROM_USER(&value, value_ptr, sizeof(value))) |
| + return -EFAULT; |
| + |
| switch (info->request) { |
| case RADEON_INFO_DEVICE_ID: |
| value = dev->pci_device; |