[PATCH i-g-t v1 1/3] lib/igt_fb: Add check before loading PNG file

Karthik B S karthik.b.s at intel.com
Tue Aug 26 07:48:31 UTC 2025


On 8/19/2025 9:20 PM, Kamil Konieczny wrote:
> In some configurations loading PNG data file fails simply because
> file was not found on path or it wasn't copied during
> installation. This in turn ends up in SIGSEGV error in cairo lib.
> Call cairo lib only when file open actually succeeded.
>
> Cc: Karthik B S <karthik.b.s at intel.com>
> Cc: Swati Sharma <swati2.sharma at intel.com>
> Signed-off-by: Kamil Konieczny <kamil.konieczny at linux.intel.com>
Reviewed-by: Karthik B S <karthik.b.s at intel.com>
> ---
>   lib/igt_fb.c | 8 +++++---
>   1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/lib/igt_fb.c b/lib/igt_fb.c
> index 9fc1bfc65..f42f37917 100644
> --- a/lib/igt_fb.c
> +++ b/lib/igt_fb.c
> @@ -2028,12 +2028,14 @@ stdio_read_func(void *closure, unsigned char* data, unsigned int size)
>   
>   cairo_surface_t *igt_cairo_image_surface_create_from_png(const char *filename)
>   {
> -	cairo_surface_t *image;
> +	cairo_surface_t *image = NULL;
>   	FILE *f;
>   
>   	f = igt_fopen_data(filename);
> -	image = cairo_image_surface_create_from_png_stream(&stdio_read_func, f);
> -	fclose(f);
> +	if (f) {
> +		image = cairo_image_surface_create_from_png_stream(&stdio_read_func, f);
> +		fclose(f);
> +	}
>   
>   	return image;
>   }


More information about the igt-dev mailing list