diff --git a/libvips/iofuncs/source.c b/libvips/iofuncs/source.c index 224baeb8..b3c5e7bf 100644 --- a/libvips/iofuncs/source.c +++ b/libvips/iofuncs/source.c @@ -318,7 +318,9 @@ vips_source_build( VipsObject *object ) if( vips_object_argument_isset( object, "blob" ) ) { size_t length; - source->data = vips_blob_get( source->blob, &length ); + if( !(source->data = vips_blob_get( source->blob, &length )) ) + return( -1 ); + source->length = VIPS_MIN( length, G_MAXSSIZE ); }