From 35fd233d0c95afedc5507e4ebe165361b1425681 Mon Sep 17 00:00:00 2001 From: Jean-Philippe Andre Date: Mon, 13 Jan 2014 15:42:14 +0900 Subject: [PATCH] Evas/cserve2: Fix crash on image file change When an image file is changed, it is discarded from cserve2, so the references become invalid. In case we were loading a scaled version of that image, no proper error checking was done, leading to obvious crashes. --- src/lib/evas/cache2/evas_cache2.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/evas/cache2/evas_cache2.c b/src/lib/evas/cache2/evas_cache2.c index 3e0fad6724..7d67447021 100644 --- a/src/lib/evas/cache2/evas_cache2.c +++ b/src/lib/evas/cache2/evas_cache2.c @@ -932,7 +932,12 @@ evas_cache2_image_scale_load(Image_Entry *im, } evas_cserve2_image_load_wait(ret); - evas_cache2_image_load_data(ret); + error = evas_cache2_image_load_data(ret); + if (error != EVAS_LOAD_ERROR_NONE) + { + _evas_cache2_image_entry_delete(im->cache2, ret); + goto parent_out; + } ret->references++; ret->w = dst_w;