diff options
-rw-r--r-- | gs/jbig2dec/jbig2_arith.c | 6 | ||||
-rw-r--r-- | gs/jbig2dec/jbig2_arith.h | 6 | ||||
-rw-r--r-- | gs/jbig2dec/jbig2_symbol_dict.c | 2 |
3 files changed, 7 insertions, 7 deletions
diff --git a/gs/jbig2dec/jbig2_arith.c b/gs/jbig2dec/jbig2_arith.c index ee0e3a373..5e6cf4c9c 100644 --- a/gs/jbig2dec/jbig2_arith.c +++ b/gs/jbig2dec/jbig2_arith.c | |||
@@ -379,10 +379,10 @@ jbig2_arith_decode (Jbig2ArithState *as, Jbig2ArithCx *pcx) | |||
379 | } | 379 | } |
380 | } | 380 | } |
381 | 381 | ||
382 | int | 382 | bool |
383 | jbig2_arith_get_offset(Jbig2ArithState *as) | 383 | jbig2_arith_has_reached_marker(Jbig2ArithState *as) |
384 | { | 384 | { |
385 | return as->offset; | 385 | return as->next_word_bytes == 2 && (as->next_word >> 16) > 0xFF8F; |
386 | } | 386 | } |
387 | 387 | ||
388 | #ifdef TEST | 388 | #ifdef TEST |
diff --git a/gs/jbig2dec/jbig2_arith.h b/gs/jbig2dec/jbig2_arith.h index 46c190311..4f7c39d09 100644 --- a/gs/jbig2dec/jbig2_arith.h +++ b/gs/jbig2dec/jbig2_arith.h | |||
@@ -33,6 +33,6 @@ jbig2_arith_new (Jbig2Ctx *ctx, Jbig2WordStream *ws); | |||
33 | bool | 33 | bool |
34 | jbig2_arith_decode (Jbig2ArithState *as, Jbig2ArithCx *pcx); | 34 | jbig2_arith_decode (Jbig2ArithState *as, Jbig2ArithCx *pcx); |
35 | 35 | ||
36 | /* return the state's offset (for sanity checks) */ | 36 | /* returns true if the end of the data stream has been reached (for sanity checks) */ |
37 | int | 37 | bool |
38 | jbig2_arith_get_offset(Jbig2ArithState *as); | 38 | jbig2_arith_has_reached_marker(Jbig2ArithState *as); |
diff --git a/gs/jbig2dec/jbig2_symbol_dict.c b/gs/jbig2dec/jbig2_symbol_dict.c index e12e89bfb..07e04d8ee 100644 --- a/gs/jbig2dec/jbig2_symbol_dict.c +++ b/gs/jbig2dec/jbig2_symbol_dict.c | |||
@@ -361,7 +361,7 @@ jbig2_decode_symbol_dict(Jbig2Ctx *ctx, | |||
361 | "error or OOB decoding height class delta (%d)\n", code); | 361 | "error or OOB decoding height class delta (%d)\n", code); |
362 | } | 362 | } |
363 | 363 | ||
364 | if (!params->SDHUFF && jbig2_arith_get_offset(as) >= size) { | 364 | if (!params->SDHUFF && jbig2_arith_has_reached_marker(as)) { |
365 | code = jbig2_error(ctx, JBIG2_SEVERITY_FATAL, segment->number, | 365 | code = jbig2_error(ctx, JBIG2_SEVERITY_FATAL, segment->number, |
366 | "prevent DOS while decoding height classes"); | 366 | "prevent DOS while decoding height classes"); |
367 | goto cleanup2; | 367 | goto cleanup2; |