evas: fix _evas_jpeg_membuf_src_skip bug

If file was corrupted , the size value of app frame is bigger than real file
size.

For example, if somebody change file using editor, the file start with (FF
D8 FF E0 FF DB ..).

But real file size can be small than (FF DB).

In that case, _evas_jpeg_membuf_src_skip set src->pub.bytes_in_buffer to
negative value, it make crash later.

Signed-off-by: Jiyoun Park <jy0703.park@samsung.com>

SVN revision: 61222
This commit is contained in:
Jiyoun Park 2011-07-11 02:29:16 +00:00 committed by Mike McCormack
parent 3b5050421b
commit 81098de5a6
1 changed files with 12 additions and 2 deletions

View File

@ -114,8 +114,18 @@ _evas_jpeg_membuf_src_skip(j_decompress_ptr cinfo,
{
struct jpeg_membuf_src *src = (struct jpeg_membuf_src *)cinfo->src;
src->pub.bytes_in_buffer -= num_bytes;
src->pub.next_input_byte += num_bytes;
long rec = 0;
rec = src->pub.bytes_in_buffer - num_bytes;
if (rec <0)
{
(*(cinfo)->err->error_exit) ((j_common_ptr) (cinfo));
}
else
{
src->pub.bytes_in_buffer -= num_bytes;
src->pub.next_input_byte += num_bytes;
}
}
static void