From: Enlightenment C. <no...@cv...> - 2006-12-19 23:51:50
|
Enlightenment CVS committal Author : devilhorns Project : e17 Module : libs/evas Dir : e17/libs/evas/src/lib/engines/common Modified Files: evas_image_main.c Log Message: Be a little more paranoid about freeing image data by adding some missing checks for valid im->cs.data and im->image->data before trying to compare them. =================================================================== RCS file: /cvs/e/e17/libs/evas/src/lib/engines/common/evas_image_main.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -3 -r1.40 -r1.41 --- evas_image_main.c 17 Dec 2006 15:48:50 -0000 1.40 +++ evas_image_main.c 19 Dec 2006 23:51:44 -0000 1.41 @@ -267,10 +267,18 @@ { im->ref--; if (im->ref > 0) return; - if (im->cs.data != im->image->data) + if ((im->cs.data) && (im->image->data)) + { + if (im->cs.data != im->image->data) + { + if (!im->cs.no_free) free(im->cs.data); + } + } + else if (im->cs.data) { if (!im->cs.no_free) free(im->cs.data); } + im->cs.data = NULL; evas_common_pipe_free(im); if (im->image) evas_common_image_surface_free(im->image); |