summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorMathieu Malaterre <mathieu.malaterre@gmail.com>2014-02-26 11:06:18 +0000
committerMathieu Malaterre <mathieu.malaterre@gmail.com>2014-02-26 11:06:18 +0000
commit4a39ee9bbc20411c7d5de3ee1c9844e94a42be3d (patch)
tree56494b3e504a4eae38529def0af41748cda354eb /src/lib
parent1dedf7f0cd371368f1bbbfd05c8e17efce59b94f (diff)
[trunk] Import patch from sumatrapdf team. Add detection for testcase 1802.pdf.SIGSEGV.36e.894
Update issue 225
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/openjp2/t2.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/lib/openjp2/t2.c b/src/lib/openjp2/t2.c
index 0982d6b5..2271ea6b 100644
--- a/src/lib/openjp2/t2.c
+++ b/src/lib/openjp2/t2.c
@@ -983,6 +983,11 @@ OPJ_BOOL opj_t2_read_packet_header( opj_t2_t* p_t2,
do {
l_cblk->segs[l_segno].numnewpasses = opj_int_min(l_cblk->segs[l_segno].maxpasses - l_cblk->segs[l_segno].numpasses, n);
l_cblk->segs[l_segno].newlen = opj_bio_read(l_bio, l_cblk->numlenbits + opj_uint_floorlog2(l_cblk->segs[l_segno].numnewpasses));
+ /* testcase 1802.pdf.SIGSEGV.36e.894 */
+ if (l_cblk->segs[l_segno].newlen > *l_modified_length_ptr) {
+ opj_bio_destroy(l_bio);
+ return OPJ_FALSE;
+ }
n -= l_cblk->segs[l_segno].numnewpasses;
if (n > 0) {