diff --git a/fuzz/qpdf_extra/16301.fuzz b/fuzz/qpdf_extra/16301.fuzz new file mode 100644 index 00000000..a9a066bb --- /dev/null +++ b/fuzz/qpdf_extra/16301.fuzz @@ -0,0 +1,7 @@ + 1 0 obj << /AcroForm<< /Fields ÿ /NeedAppearances true>> /Pages 16 0 R >> +endobj +15 0 obj << /Annots [ << ÿ /FT/Ch/Subtype /Widget >> +endobj +16 0 obj <<ÿÿÿÿ/Kids[15 0 R] >> +endobj +trailer << /Root 1 0 R >> ]>> ÿ ÿ \ No newline at end of file diff --git a/libqpdf/QPDFObjectHandle.cc b/libqpdf/QPDFObjectHandle.cc index 04149b22..a6d07190 100644 --- a/libqpdf/QPDFObjectHandle.cc +++ b/libqpdf/QPDFObjectHandle.cc @@ -2310,6 +2310,11 @@ QPDFObjectHandle::newStream(QPDF* qpdf, int objid, int generation, QPDFObjectHandle QPDFObjectHandle::newStream(QPDF* qpdf) { + if (qpdf == 0) + { + throw std::runtime_error( + "attempt to create stream in null qpdf object"); + } QTC::TC("qpdf", "QPDFObjectHandle newStream"); QPDFObjectHandle stream_dict = newDictionary(); QPDFObjectHandle result = qpdf->makeIndirectObject(