Merge pull request #2168 from lovell/nsgifload-sanity-check-dimensions

nsgifload: check dimensions before memory allocation
This commit is contained in:
John Cupitt 2021-03-28 22:42:29 +01:00 committed by GitHub
commit 77ccd04cbe
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -534,10 +534,17 @@ vips_foreign_load_nsgif_class_init( VipsForeignLoadNsgifClass *class )
static void *
vips_foreign_load_nsgif_bitmap_create( int width, int height )
{
/* ensure a stupidly large bitmap is not created
/* Check GIF dimensions fit within 16-bit unsigned.
*/
return calloc( width * height, 4 );
if( width <= 0 ||
width > 65535 ||
height <= 0 ||
height > 65535 ) {
vips_error( "gifload",
"%s", _( "dimensions out of range ") );
return( NULL );
}
return g_malloc0( width * height * 4 );
}
static void
@ -569,7 +576,7 @@ static void
vips_foreign_load_nsgif_bitmap_destroy( void *bitmap )
{
g_assert( bitmap );
free( bitmap );
g_free( bitmap );
}
static void