I add some check code to avoid overflow problem into file related with evas
scale function.

Usually fixed point using 16bit shift, so I check whether the value over
32767.
I only check the value related with overflow.

Below is mail I wrote before.

Thanks.


----------------------------------------------------------------------------
--
Hi. I'm Jiyoun park.

there is bug in evas_scale_smooth_scaler_up.c (Woohyun Jung found it)

if src_region_x exceed 32767, it make overflow when line 40 <<<<<<<   dsxx =
((srw - 1) << 16) / (drw - 1)  >>>>
(and maybe  dsyy = ((srh - 1) << 16) / (drh - 1) code also make overflow)

this overflow make segmentation fault in line: 211( p0 = p1 = p2 = p3 = *p;)

the value of src_region_x can be exceed 30000, so we have to deal with this
overflow. 
 
I think this shift maybe related with fixed point. 
can we reduce 16bit shift to 14 or other value ?
 (but this down scale quality. and this still make over flow if the
src_region_x exceed 60000 or 1200000)

Is there any method to deal with overflow error fundamentally?

thanks.


Attachment: evas_scale_overflow.patch
Description: Binary data

------------------------------------------------------------------------------
EditLive Enterprise is the world's most technically advanced content
authoring tool. Experience the power of Track Changes, Inline Image
Editing and ensure content is compliant with Accessibility Checking.
http://p.sf.net/sfu/ephox-dev2dev
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to