Skip to content

Commit d946f05

Browse files
Merge pull request #20440 from Gaurang-5/master
Fix infinite loop in JBIG2 decoder with >4 referred-to segments
2 parents 6075f6e + ac8d80a commit d946f05

File tree

4 files changed

+11
-3
lines changed

4 files changed

+11
-3
lines changed

src/core/jbig2.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1165,15 +1165,15 @@ function readSegmentHeader(data, start) {
11651165
let referredToCount = (referredFlags >> 5) & 7;
11661166
const retainBits = [referredFlags & 31];
11671167
let position = start + 6;
1168-
if (referredFlags === 7) {
1168+
if (referredToCount === 7) {
11691169
referredToCount = readUint32(data, position - 1) & 0x1fffffff;
11701170
position += 3;
1171-
let bytes = (referredToCount + 7) >> 3;
1171+
let bytes = (referredToCount + 8) >> 3;
11721172
retainBits[0] = data[position++];
11731173
while (--bytes > 0) {
11741174
retainBits.push(data[position++]);
11751175
}
1176-
} else if (referredFlags === 5 || referredFlags === 6) {
1176+
} else if (referredToCount === 5 || referredToCount === 6) {
11771177
throw new Jbig2Error("invalid referred-to flags");
11781178
}
11791179

test/pdfs/.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -751,6 +751,7 @@
751751
!comments.pdf
752752
!issue20319_1.pdf
753753
!issue20319_2.pdf
754+
!issue20439.pdf
754755
!bug1992868.pdf
755756
!bug1937438_af_from_latex.pdf
756757
!bug1937438_from_word.pdf

test/pdfs/issue20439.pdf

1.27 KB
Binary file not shown.

test/test_manifest.json

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2817,6 +2817,13 @@
28172817
"rounds": 1,
28182818
"type": "eq"
28192819
},
2820+
{
2821+
"id": "issue20439",
2822+
"file": "pdfs/issue20439.pdf",
2823+
"md5": "3c7e888b26ff00943ec1610d93235efc",
2824+
"rounds": 1,
2825+
"type": "eq"
2826+
},
28202827
{
28212828
"id": "issue15942",
28222829
"file": "pdfs/issue15942.pdf",

0 commit comments

Comments
 (0)