File libpng16-CVE-2026-22695.patch of Package libpng16.42243

Index: libpng-1.6.8/pngread.c
===================================================================
--- libpng-1.6.8.orig/pngread.c
+++ libpng-1.6.8/pngread.c
@@ -3116,9 +3116,11 @@ png_image_read_direct_scaled(png_voidp a
        argument);
    png_imagep image = display->image;
    png_structrp png_ptr = image->opaque->png_ptr;
+   png_inforp info_ptr = image->opaque->info_ptr;
    png_bytep local_row = png_voidcast(png_bytep, display->local_row);
    png_bytep first_row = png_voidcast(png_bytep, display->first_row);
    ptrdiff_t row_bytes = display->row_bytes;
+   size_t copy_bytes = png_get_rowbytes(png_ptr, info_ptr);
    int passes;
 
    /* Handle interlacing. */
@@ -3148,7 +3150,7 @@ png_image_read_direct_scaled(png_voidp a
          png_read_row(png_ptr, local_row, NULL);
 
          /* Copy from local_row to user buffer. */
-         memcpy(output_row, local_row, (size_t)row_bytes);
+         memcpy(output_row, local_row, copy_bytes);
          output_row += row_bytes;
       }
    }
openSUSE Build Service is sponsored by