[gs-commits] ghostpdl branch, master, updated. jbig2dec-0.14-1971-gaa13e1a
[email protected] (Julian Smith) Tue, 26 Nov 2019 12:03:06 +0000 (UTC)
| Newsgroups | gmane.comp.printing.ghostscript.cvs |
|---|---|
| Message-ID | <[email protected]> |
The ghostpdl branch, master has been updated
via aa13e1a3fac84ada2b676f9c5fcffb30f5df74dd (commit)
from 34fc5a7613eea288a8426d3be425c93647954668 (commit)
----------------------------------------------------------------------
commit aa13e1a3fac84ada2b676f9c5fcffb30f5df74dd
Author: Julian Smith <[email protected]>
Date: Mon Nov 25 15:14:51 2019 +0000
Coverity 351088: check for errors in px_begin_error_page().
Had to change px_begin_error_page()'s API to use out-parameter, so that return
value is error code.
diff --git a/pcl/pxl/pxerrors.c b/pcl/pxl/pxerrors.c
index 19203a2..3697257 100644
--- a/pcl/pxl/pxerrors.c
+++ b/pcl/pxl/pxerrors.c
@@ -227,12 +227,17 @@ px_error_message_line(char message[px_max_error_line + 1], int N,
/* Begin an error page. Return the initial Y value. */
int
-px_begin_error_page(px_state_t * pxs)
+px_begin_error_page(px_state_t * pxs, int* y)
{
+ int code;
+
gs_gstate *pgs = pxs->pgs;
- gs_initgraphics(pgs);
- gs_erasepage(pgs);
+ code = gs_initgraphics(pgs);
+ if (code < 0) return code;
+
+ code = gs_erasepage(pgs);
+ if (code < 0) return code;
/* Don't call pxSetPageDefaultCTM -- we don't want rotation or */
/* unusual Units of Measure -- but do invert the Y axis. */
/*pxSetPageDefaultCTM(NULL, pxs); */
@@ -242,8 +247,9 @@ px_begin_error_page(px_state_t * pxs)
px_get_default_media_size(pxs, &pt);
gs_translate(pgs, 0.0, pt.y);
gs_scale(pgs, 1.0, -1.0);
- return 90;
+ *y = 90;
}
+ return 0;
}
/* Print a message on an error page. */
diff --git a/pcl/pxl/pxerrors.h b/pcl/pxl/pxerrors.h
index 00568c2..d765e4e 100644
--- a/pcl/pxl/pxerrors.h
+++ b/pcl/pxl/pxerrors.h
@@ -46,8 +46,8 @@ int px_error_message_line(char message[px_max_error_line + 1], int N,
const px_parser_state_t * st,
const px_state_t * pxs);
-/* Begin an error page. Return the initial Y value. */
-int px_begin_error_page(px_state_t * pxs);
+/* Begin an error page. Returns the initial Y value in *y. */
+int px_begin_error_page(px_state_t * pxs, int * y);
/* Print a message on an error page. */
/* Return the updated Y value. */
diff --git a/pcl/pxl/pxtop.c b/pcl/pxl/pxtop.c
index bf9d346..b1d7e45 100644
--- a/pcl/pxl/pxtop.c
+++ b/pcl/pxl/pxtop.c
@@ -466,8 +466,12 @@ pxl_impl_report_errors(pl_interp_implementation_t * impl,
if (code >= 0)
return code; /* not really an error */
- if (report & eErrorPage)
- y = px_begin_error_page(pxs);
+ if (report & eErrorPage) {
+ int ecode = px_begin_error_page(pxs, &y);
+ if (ecode < 0) {
+ return ecode;
+ }
+ }
while ((N = px_error_message_line(message, N, subsystem,
code, st, pxs)) >= 0) {
if ((report & eBackChannel) || force_to_cout)
Summary of changes:
pcl/pxl/pxerrors.c | 14 ++++++++++----
pcl/pxl/pxerrors.h | 4 ++--
pcl/pxl/pxtop.c | 8 ++++++--
3 files changed, 18 insertions(+), 8 deletions(-)