[Mesa-dev] [PATCH] radv: fix possible stack corruption

Bas Nieuwenhuizen bas at basnieuwenhuizen.nl
Tue May 2 20:51:24 UTC 2017


Some defensive programming can't hurt.

Reviewed-by: Bas Nieuwenhuizen <bas at basnieuwenhuizen.nl>

On Tue, May 2, 2017 at 7:17 PM, Grazvydas Ignotas <notasas at gmail.com> wrote:
> drmGetDevices2 takes count and not size. Probably hasn't caused problems
> yet in practice and was missed as setups with more than 8 DRM devices
> are not very common.
>
> Fixes: 743315f2 "radv: do not open random render node(s)"
> Signed-off-by: Grazvydas Ignotas <notasas at gmail.com>
> ---
>  src/amd/vulkan/radv_device.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/src/amd/vulkan/radv_device.c b/src/amd/vulkan/radv_device.c
> index dd401f4..214b2e0 100644
> --- a/src/amd/vulkan/radv_device.c
> +++ b/src/amd/vulkan/radv_device.c
> @@ -399,11 +399,11 @@ radv_enumerate_devices(struct radv_instance *instance)
>         VkResult result = VK_ERROR_INCOMPATIBLE_DRIVER;
>         int max_devices;
>
>         instance->physicalDeviceCount = 0;
>
> -       max_devices = drmGetDevices2(0, devices, sizeof(devices));
> +       max_devices = drmGetDevices2(0, devices, ARRAY_SIZE(devices));
>         if (max_devices < 1)
>                 return VK_ERROR_INCOMPATIBLE_DRIVER;
>
>         for (unsigned i = 0; i < (unsigned)max_devices; i++) {
>                 if (devices[i]->available_nodes & 1 << DRM_NODE_RENDER &&
> --
> 2.7.4
>
> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/mesa-dev


More information about the mesa-dev mailing list