Index: src/modules/loaders/jpeg/evas_image_load_jpeg.c
===================================================================
--- src/modules/loaders/jpeg/evas_image_load_jpeg.c	(revision 62524)
+++ src/modules/loaders/jpeg/evas_image_load_jpeg.c	(working copy)
@@ -116,17 +116,18 @@ _evas_jpeg_membuf_src_skip(j_decompress_ptr cinfo,
    struct jpeg_membuf_src *src = (struct jpeg_membuf_src *)cinfo->src;
 
    long rec = 0;
+   unsigned char *buffer_end;
+
    rec = src->pub.bytes_in_buffer - num_bytes;
+   buffer_end = src->buf + src->len;
 
-   if (rec <0)
+   src->pub.bytes_in_buffer -= num_bytes;
+   src->pub.next_input_byte += num_bytes;
+
+   if ((rec < 0) || (src->pub.next_input_byte > buffer_end))
      {
         (*(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
