summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--psi/interp.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/psi/interp.c b/psi/interp.c
index 8b4955693..615083867 100644
--- a/psi/interp.c
+++ b/psi/interp.c
@@ -676,7 +676,12 @@ again:
/* Push the error object on the operand stack if appropriate. */
if (!GS_ERROR_IS_INTERRUPT(code)) {
/* Replace the error object if within an oparray or .errorexec. */
- *++osp = *perror_object;
+ osp++;
+ if (osp >= ostop) {
+ *pexit_code = gs_error_Fatal;
+ return_error(gs_error_Fatal);
+ }
+ *osp = *perror_object;
errorexec_find(i_ctx_p, osp);
}
goto again;