commit - f3f182b7c7d2bc96123e895c4e58e1bdceab98ca
commit + 86cc2a8811c0ecaa347a5e512ea99e1bd18bda67
blob - 6050dc39de88d9fa711e55f184f61421d9ab5ff7
blob + 129e1591f556a77f2c976bb3b91c4a17977f5dcb
--- pdf.c
+++ pdf.c
H_RULE(xr_td, SEQ(xrefs, KW("trailer"), ws, dict));
+ H_RULE(start_junk, VIOL(h_many1(h_butnot(h_ch_range(0, 255), header)),
+ "Junk bytes before %PDF header (severity=1)"));
H_RULE(hdr_junk, CHX(comment,
VIOL(h_many1(h_butnot(h_ch_range(0, 255), SEQ(npair, wel, KW("obj")))),
"Uncommented junk after header (severity=1)")));
VIOL(h_many1(h_butnot(h_ch_range(0, 255), LIT("%%EOF"))),
"Data after final %%EOF (severity=7)"),
end));
- H_RULE(pdf, SEQ(header, OPT(hdr_junk), h_many1(tail), final_eof_junk));
+ H_RULE(pdf, SEQ(OPT(start_junk), header, OPT(hdr_junk), h_many1(tail), final_eof_junk));
/* debug parser to consume as much as possible */
- H_RULE(pdfdbg, SEQ(header, OPT(hdr_junk), h_many(tail), body, OPT(xr_td), OPT(SEQ(startxr, final_eof_junk))));
+ H_RULE(pdfdbg, SEQ(OPT(start_junk), header, OPT(hdr_junk), h_many(tail), body, OPT(xr_td), OPT(SEQ(startxr, final_eof_junk))));
/*
* filters