diff options
| -rw-r--r-- | fiv-thumbnail.c | 12 | 
1 files changed, 12 insertions, 0 deletions
diff --git a/fiv-thumbnail.c b/fiv-thumbnail.c index c552073..0933951 100644 --- a/fiv-thumbnail.c +++ b/fiv-thumbnail.c @@ -281,6 +281,12 @@ fiv_thumbnail_extract(GFile *target, FivThumbnailSize max_size, GError **error)  	// TODO(p): Implement our own thumbnail extractors.  	set_error(error, "unsupported file");  #else  // HAVE_LIBRAW +	// In this case, g_mapped_file_get_contents() returns NULL, causing issues. +	if (!g_mapped_file_get_length(mf)) { +		set_error(error, "empty file"); +		goto fail; +	} +  	libraw_data_t *iprc = libraw_init(  		LIBRAW_OPIONS_NO_MEMERR_CALLBACK | LIBRAW_OPIONS_NO_DATAERR_CALLBACK);  	if (!iprc) { @@ -535,7 +541,13 @@ fiv_thumbnail_produce(GFile *target, FivThumbnailSize max_size, GError **error)  		return produce_fallback(target, max_size, error);  	} +	// In this case, g_mapped_file_get_bytes() has NULL data, causing issues.  	gsize filesize = g_mapped_file_get_length(mf); +	if (!filesize) { +		set_error(error, "empty file"); +		return NULL; +	} +  	gboolean color_managed = FALSE;  	cairo_surface_t *surface =  		render(target, g_mapped_file_get_bytes(mf), &color_managed, error);  | 
