summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlbert Astals Cid <aacid@kde.org>2020-04-08 23:09:45 +0200
committerAlbert Astals Cid <aacid@kde.org>2020-04-08 23:09:45 +0200
commitdd7168828cf07971adc8c24bab0f3b6e3d28e0c9 (patch)
treeb94c10f63636cf6a57b7d61e7d071a020bb09094
parentf56ba915e3f125130f131cca8a89580e1990c0e2 (diff)
Fix crash on malformed files
-rw-r--r--libspectre/ps.c14
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,