diff mbox

[libdrm,1/2] Return an -ENODEV from drmGetDevice() when no device was found.

Message ID 20161021171240.6972-1-eric@anholt.net (mailing list archive)
State New, archived
Headers show

Commit Message

Eric Anholt Oct. 21, 2016, 5:12 p.m. UTC
From: Rob Herring <robh@kernel.org>

Fixes crashes in Mesa on platform device, which expected *device to
have a device when 0 was returned.

(code from a paste by Rob, commit message by anholt)

Signed-off-by: Eric Anholt <eric@anholt.net>
---
 xf86drm.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Alex Deucher Oct. 21, 2016, 5:24 p.m. UTC | #1
On Fri, Oct 21, 2016 at 1:12 PM, Eric Anholt <eric@anholt.net> wrote:
> From: Rob Herring <robh@kernel.org>
>
> Fixes crashes in Mesa on platform device, which expected *device to
> have a device when 0 was returned.
>
> (code from a paste by Rob, commit message by anholt)
>
> Signed-off-by: Eric Anholt <eric@anholt.net>

Reviewed-by: Alex Deucher <alexander.deucher@amd.com>

> ---
>  xf86drm.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/xf86drm.c b/xf86drm.c
> index 9cfca49ddfda..9b52889e4cef 100644
> --- a/xf86drm.c
> +++ b/xf86drm.c
> @@ -3181,6 +3181,8 @@ int drmGetDevice(int fd, drmDevicePtr *device)
>
>      closedir(sysdir);
>      free(local_devices);
> +    if (*device == NULL)
> +       return -ENODEV;
>      return 0;
>
>  free_devices:
> --
> 2.9.3
>
> _______________________________________________
> dri-devel mailing list
> dri-devel@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/dri-devel
Emil Velikov Oct. 21, 2016, 5:31 p.m. UTC | #2
On 21 October 2016 at 18:12, Eric Anholt <eric@anholt.net> wrote:
> From: Rob Herring <robh@kernel.org>
>
> Fixes crashes in Mesa on platform device, which expected *device to
> have a device when 0 was returned.
>
> (code from a paste by Rob, commit message by anholt)
>
> Signed-off-by: Eric Anholt <eric@anholt.net>
Reviewed-by: Emil Velikov <emil.velikov@collabora.com>

Thanks
Emil
diff mbox

Patch

diff --git a/xf86drm.c b/xf86drm.c
index 9cfca49ddfda..9b52889e4cef 100644
--- a/xf86drm.c
+++ b/xf86drm.c
@@ -3181,6 +3181,8 @@  int drmGetDevice(int fd, drmDevicePtr *device)
 
     closedir(sysdir);
     free(local_devices);
+    if (*device == NULL)
+	return -ENODEV;
     return 0;
 
 free_devices: