[gs-commits] ghostpdl branch, master, updated. jbig2dec-0.14-1971-g4513a4c
[email protected] (Robin Watts) Mon, 25 Nov 2019 20:28:58 +0000 (UTC)
| Newsgroups | gmane.comp.printing.ghostscript.cvs |
|---|---|
| Message-ID | <[email protected]> |
The ghostpdl branch, master has been updated
via 4513a4cd5aff5f09e54460bdaea862389067631a (commit)
via 34fc5a7613eea288a8426d3be425c93647954668 (commit)
from a570a05622cb178c031db64711b412cf640038b2 (commit)
----------------------------------------------------------------------
commit 4513a4cd5aff5f09e54460bdaea862389067631a
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..1a36f03 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) {
+ code = px_begin_error_page(pxs, &y);
+ if (code < 0) {
+ return code;
+ }
+ }
while ((N = px_error_message_line(message, N, subsystem,
code, st, pxs)) >= 0) {
if ((report & eBackChannel) || force_to_cout)
----------------------------------------------------------------------
commit 34fc5a7613eea288a8426d3be425c93647954668
Author: Julian Smith <[email protected]>
Date: Mon Nov 25 14:42:05 2019 +0000
Coverity 351086: Fix out-of-bounds access to score[2].
diff --git a/gpdl/psitop.c b/gpdl/psitop.c
index f7ca110..0ba3c01 100644
--- a/gpdl/psitop.c
+++ b/gpdl/psitop.c
@@ -108,7 +108,7 @@ check_token(int token_type, const char *s, const char *e, int *score)
TOKEN_CHECK("translate")
TOKEN_CHECK("systemdict")
- if (score[0] > 1024 && score[2] >= 3)
+ if (score[0] > 1024 && score[1] >= 3)
return 1;
if (score[0] < -1024)
return 1;
Summary of changes:
gpdl/psitop.c | 2 +-
pcl/pxl/pxerrors.c | 14 ++++++++++----
pcl/pxl/pxerrors.h | 4 ++--
pcl/pxl/pxtop.c | 8 ++++++--
4 files changed, 19 insertions(+), 9 deletions(-)