diff --git a/libavcodec/jpeglsdec.c b/libavcodec/jpeglsdec.c
index 6b7dd94647f890bebb8a5ee4bf3228180844ad1c..4dbc88b288ce4cec30a403b70613bd2cfd7b6b8b 100644
--- a/libavcodec/jpeglsdec.c
+++ b/libavcodec/jpeglsdec.c
@@ -143,6 +143,8 @@ static inline int ls_get_code_runterm(GetBitContext *gb, JLSState *state, int RI
         ret = ret >> 1;
     }
 
+    if(FFABS(ret) > 0xFFFF)
+        return -0x10000;
     /* update state */
     state->A[Q] += FFABS(ret) - RItype;
     ret *= state->twonear;