From 46611f0710fa08f1a90134a84cfccec3a1e49f94 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Fri, 11 Aug 2017 20:10:28 -0400 Subject: Prevent a division by zero error (fixes #141) Bad /W in an xref stream could cause a division by zero error. Now this is handled as a special case. --- libqpdf/QPDFWriter.cc | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'libqpdf/QPDFWriter.cc') diff --git a/libqpdf/QPDFWriter.cc b/libqpdf/QPDFWriter.cc index 8ee322af..8d5f0682 100644 --- a/libqpdf/QPDFWriter.cc +++ b/libqpdf/QPDFWriter.cc @@ -2056,6 +2056,10 @@ QPDFWriter::generateObjectStreams() std::vector const& eligible = QPDF::Writer::getCompressibleObjGens(this->pdf); unsigned int n_object_streams = (eligible.size() + 99) / 100; + if (n_object_streams == 0) + { + throw std::logic_error("n_object_streams == 0"); + } unsigned int n_per = eligible.size() / n_object_streams; if (n_per * n_object_streams < eligible.size()) { -- cgit v1.2.3-54-g00ecf