ref: f680c2d09d76172f7adee998608a8df0b8d2828c
parent: 609901fe1d5496caeae2289ee20d7be965e413b0
author: Shailesh Mistry <shailesh.mistry@hotmail.co.uk>
date: Sun Nov 20 05:29:47 EST 2011
Fix 691958: check for an image before marking a page complete. Also update return code to handle errors correctly.
--- a/jbig2_page.c
+++ b/jbig2_page.c
@@ -195,11 +195,11 @@
int
jbig2_complete_page (Jbig2Ctx *ctx)
{
+ int code = 0;
/* check for unfinished segments */
if (ctx->segment_index != ctx->n_segments) {
Jbig2Segment *segment = ctx->segments[ctx->segment_index];
- int code = 0;
/* Some versions of Xerox Workcentre generate PDF files
with the segment data length field of the last segment
set to -1. Try to cope with this here. */
@@ -213,9 +213,14 @@
ctx->segment_index++;
}
}
- ctx->pages[ctx->current_page].state = JBIG2_PAGE_COMPLETE;
- return 0;
+ /* ensure image exists before marking page as complete */
+ if (ctx->pages[ctx->current_page].image != NULL)
+ {
+ ctx->pages[ctx->current_page].state = JBIG2_PAGE_COMPLETE;
+ }
+
+ return code;
}
/**