summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Niedermayer <[email protected]>2013-10-30 23:27:28 +0100
committerMichael Niedermayer <[email protected]>2014-03-21 04:23:59 +0100
commit84e1aa7768a218603312a1b1b7184c9ee8d17079 (patch)
tree3d7c7c1be4038b91b7cd7ecb2f693664077ab407
parentea23dcc4986e9372d4c506889328d9394e28610a (diff)
avcodec/jpeglsdec: check err value for ls_get_code_runterm()
Fixes infinite loop Fixes Ticket3086 Signed-off-by: Michael Niedermayer <[email protected]> (cherry picked from commit cc0e47b55096361723b364afa43b79a3f5619cdc) Signed-off-by: Michael Niedermayer <[email protected]>
-rw-r--r--libavcodec/jpeglsdec.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/libavcodec/jpeglsdec.c b/libavcodec/jpeglsdec.c
index 5e98b64644..81b350cd87 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;