summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Liddell <chris.liddell@artifex.com>2022-02-23 17:31:23 +0000
committerChris Liddell <chris.liddell@artifex.com>2022-02-24 15:19:30 +0000
commitdba3969a6b5a659a0c6e4286f452e744706813bb (patch)
treeb6972f823515e34d5eebf899ac66ee46367de067
parenta16917a77693e16c3a63a8a00ad782052ed5434e (diff)
downloadghostpdl-dba3969a6b5a659a0c6e4286f452e744706813bb.tar.gz
oss-fuzz 44976: Check length of array before accessing
-rw-r--r--pdf/pdf_fontps.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/pdf/pdf_fontps.c b/pdf/pdf_fontps.c
index 1b562a37d..3ab399b96 100644
--- a/pdf/pdf_fontps.c
+++ b/pdf/pdf_fontps.c
@@ -441,7 +441,7 @@ ps_font_def_func(gs_memory_t *mem, pdf_ps_ctx_t *s, byte *buf, byte *bufend)
case 5:
if (pdf_ps_name_cmp(&s->cur[-1], "StdHW")) {
- if (pdf_ps_obj_has_type(&s->cur[0], PDF_PS_OBJ_ARRAY)) {
+ if (pdf_ps_obj_has_type(&s->cur[0], PDF_PS_OBJ_ARRAY) && s->cur[0].size > 0) {
if (pdf_ps_obj_has_type(&s->cur[0].val.arr[0], PDF_PS_OBJ_INTEGER)) {
priv->gsu.gst1.data.StdHW.values[0] = (float)s->cur[0].val.arr[0].val.i;
priv->gsu.gst1.data.StdHW.count = 1;
@@ -453,7 +453,7 @@ ps_font_def_func(gs_memory_t *mem, pdf_ps_ctx_t *s, byte *buf, byte *bufend)
}
}
else if (pdf_ps_name_cmp(&s->cur[-1], "StdVW")) {
- if (pdf_ps_obj_has_type(&s->cur[0], PDF_PS_OBJ_ARRAY)) {
+ if (pdf_ps_obj_has_type(&s->cur[0], PDF_PS_OBJ_ARRAY) && s->cur[0].size > 0) {
if (pdf_ps_obj_has_type(&s->cur[0].val.arr[0], PDF_PS_OBJ_INTEGER)) {
priv->gsu.gst1.data.StdVW.values[0] = (float)s->cur[0].val.arr[0].val.i;
priv->gsu.gst1.data.StdVW.count = 1;