diff --git a/legacy/evas/src/bin/loaders/webp/evas_image_load_webp.c b/legacy/evas/src/bin/loaders/webp/evas_image_load_webp.c index 6adf0ea9a3..125c581548 100644 --- a/legacy/evas/src/bin/loaders/webp/evas_image_load_webp.c +++ b/legacy/evas/src/bin/loaders/webp/evas_image_load_webp.c @@ -98,6 +98,12 @@ evas_image_load_file_data_webp(Evas_Img_Load_Params *ilp, const char *file, cons fclose(f); decoded = WebPDecodeBGRA(data, file_size, &width, &height); + if (!decoded) + { + *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; + free(data); + goto close_file; + } memcpy(ilp->buffer, decoded, width * height * 4); evas_cserve2_image_premul(ilp); diff --git a/legacy/evas/src/modules/loaders/webp/evas_image_load_webp.c b/legacy/evas/src/modules/loaders/webp/evas_image_load_webp.c index 5b2391001c..c0506032c2 100644 --- a/legacy/evas/src/modules/loaders/webp/evas_image_load_webp.c +++ b/legacy/evas/src/modules/loaders/webp/evas_image_load_webp.c @@ -116,6 +116,11 @@ evas_image_load_file_data_webp(Image_Entry *ie, const char *file, const char *ke } decoded = WebPDecodeBGRA(data, file_size, &width, &height); + if (!decoded) + { + *error = EVAS_LOAD_ERROR_UNKNOWN_FORMAT; + goto free_data; + } memcpy(surface, decoded, width * height * 4); evas_common_image_premul(ie);