[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