diff --git a/configure.ac b/configure.ac index 3b27508..b943267 100644 --- a/configure.ac +++ b/configure.ac @@ -23,7 +23,7 @@ # Initialize Autoconf AC_PREREQ([2.60]) AC_INIT([xlibre-xf86-video-amdgpu], - [25.1.0], + [25.1.1], [https://github.com/X11Libre/xf86-video-amdgpu/issues], [xlibre-xf86-video-amdgpu]) diff --git a/meson.build b/meson.build index f138884..83549e4 100644 --- a/meson.build +++ b/meson.build @@ -1,7 +1,7 @@ project( 'xf86-video-amdgpu', 'c', - version: '25.1.0', + version: '25.1.1', license: 'MIT', meson_version: '>=0.59.0', default_options: ['warning_level=1'] diff --git a/src/amdgpu_dri3.c b/src/amdgpu_dri3.c index d741cc9..f0f6e90 100644 --- a/src/amdgpu_dri3.c +++ b/src/amdgpu_dri3.c @@ -829,10 +829,15 @@ amdgpu_dri3_get_formats(ScreenPtr screen, unsigned int *num_formats, DRM_FORMAT_RGB332, DRM_FORMAT_BGR233, }; + unsigned int count = sizeof(formats_arr) / sizeof(formats_arr[0]); - *num_formats = sizeof(formats_arr) / sizeof(formats_arr[0]); - *formats = (unsigned int *)formats_arr; - return sizeof(formats_arr) / sizeof(formats_arr[0]); + *formats = malloc(count * sizeof(uint32_t)); + if (!*formats) + return 0; + + memcpy(*formats, formats_arr, count * sizeof(uint32_t)); + *num_formats = count; + return count; } /*