Fix for 688005, Crash in jpeg error handling
Alex Cherepanov <[email protected]> Mon, 28 Mar 2005 07:48:23 -0500
| Newsgroups | gmane.comp.printing.ghostscript.patches |
|---|---|
| Organization | Coscript Software |
| Message-ID | <[email protected]> |
Fix error reporting in the jpeg driver. Initialize report_error member of jpeg encoding stream and propagate stream exceptions to the interpreter level. Bug 688005 _______________________________________________ gs-code-review mailing list [email protected] http://www.ghostscript.com/mailman/listinfo/gs-code-review
688005.diff
(text/plain, 1 KB)
Index: gs/src/gdevjpeg.c
===================================================================
RCS file: /cvs/ghostscript/gs/src/gdevjpeg.c,v
retrieving revision 1.8
diff -u -r1.8 gdevjpeg.c
--- gs/src/gdevjpeg.c 7 Oct 2004 05:18:34 -0000 1.8
+++ gs/src/gdevjpeg.c 28 Mar 2005 12:40:42 -0000
@@ -175,10 +175,9 @@
code = gs_note_error(gs_error_VMerror);
goto fail;
}
- /* Create the DCT decoder state. */
+ /* Create the DCT encoder state. */
jcdp->template = s_DCTE_template;
- state.template = &jcdp->template;
- state.memory = 0;
+ s_init_state((stream_state *)&state, &jcdp->template, 0);
if (state.template->set_defaults)
(*state.template->set_defaults) ((stream_state *) & state);
state.QFactor = 1.0; /* disable quality adjustment in zfdcte.c */
@@ -258,6 +257,10 @@
byte *data;
uint ignore_used;
+ if (jstrm.end_status) {
+ code = gs_note_error(gs_error_ioerror);
+ goto done;
+ }
gdev_prn_get_bits(pdev, lnum, in, &data);
sputs(&jstrm, data, state.scan_line_size, &ignore_used);
}