[trunk] Import patch from sumatrapdf team. Add detection for testcase 1802.pdf.SIGSEG...
authorMathieu Malaterre <mathieu.malaterre@gmail.com>
Wed, 26 Feb 2014 11:06:18 +0000 (11:06 +0000)
committerMathieu Malaterre <mathieu.malaterre@gmail.com>
Wed, 26 Feb 2014 11:06:18 +0000 (11:06 +0000)
Update issue 225

src/lib/openjp2/t2.c

index 0982d6b5fe274f65baa97c04a77d4c0f788f7b21..2271ea6b1aa35627f2c0a94fb0c1f83dc001803a 100644 (file)
@@ -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) {