summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gs/jbig2dec/jbig2_arith.c6
-rw-r--r--gs/jbig2dec/jbig2_arith.h6
-rw-r--r--gs/jbig2dec/jbig2_symbol_dict.c2
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
382int 382bool
383jbig2_arith_get_offset(Jbig2ArithState *as) 383jbig2_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);
33bool 33bool
34jbig2_arith_decode (Jbig2ArithState *as, Jbig2ArithCx *pcx); 34jbig2_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) */
37int 37bool
38jbig2_arith_get_offset(Jbig2ArithState *as); 38jbig2_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;