diff options
author | Albert Astals Cid <aacid@kde.org> | 2020-04-08 23:09:45 +0200 |
---|---|---|
committer | Albert Astals Cid <aacid@kde.org> | 2020-04-08 23:09:45 +0200 |
commit | dd7168828cf07971adc8c24bab0f3b6e3d28e0c9 (patch) | |
tree | b94c10f63636cf6a57b7d61e7d071a020bb09094 | |
parent | f56ba915e3f125130f131cca8a89580e1990c0e2 (diff) |
Fix crash on malformed files
-rw-r--r-- | libspectre/ps.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/libspectre/ps.c b/libspectre/ps.c index 3e15598..491eddc 100644 --- a/libspectre/ps.c +++ b/libspectre/ps.c @@ -810,14 +810,16 @@ psscan(FILE *file, const char *filename, int scanstyle) } else if (page_media_set == NONE && iscomment(line+2, "PageMedia:")) { cp = ps_gettext(line+length("%%PageMedia:"), NULL); - for (dmp = doc->media, i=0; i<doc->nummedia; i++, dmp++) { - if (strcmp(cp, dmp->name) == 0) { - doc->default_page_media = dmp; - page_media_set = 1; - break; + if (cp) { + for (dmp = doc->media, i=0; i<doc->nummedia; i++, dmp++) { + if (strcmp(cp, dmp->name) == 0) { + doc->default_page_media = dmp; + page_media_set = 1; + break; + } } + PS_free(cp); } - PS_free(cp); } else if (page_bb_set == NONE && iscomment(line+2, "PageBoundingBox:")) { if (scan_boundingbox(doc->default_page_boundingbox, |