Blob Blame History Raw
diff -up qpdf-5.0.1/libqpdf/QPDFObjectHandle.cc.contents qpdf-5.0.1/libqpdf/QPDFObjectHandle.cc
--- qpdf-5.0.1/libqpdf/QPDFObjectHandle.cc.contents	2020-01-17 12:54:04.170942606 +0100
+++ qpdf-5.0.1/libqpdf/QPDFObjectHandle.cc	2020-01-17 12:55:17.944246296 +0100
@@ -633,7 +633,7 @@ QPDFObjectHandle::getPageContents()
     {
 	result.push_back(contents);
     }
-    else
+    else if (! contents.isNull())
     {
 	throw std::runtime_error("unknown object type inspecting /Contents "
 				 "key in page dictionary");
diff -up qpdf-5.0.1/qpdf/qtest/qpdf/page-no-content.out.contents qpdf-5.0.1/qpdf/qtest/qpdf/page-no-content.out
--- qpdf-5.0.1/qpdf/qtest/qpdf/page-no-content.out.contents	2020-01-17 12:54:04.170942606 +0100
+++ qpdf-5.0.1/qpdf/qtest/qpdf/page-no-content.out	2020-01-17 12:54:04.170942606 +0100
@@ -0,0 +1,8 @@
+page 1: 3 0 R
+  content:
+    6 0 R
+page 2: 4 0 R
+  content:
+page 3: 5 0 R
+  content:
+    9 0 R
diff -up qpdf-5.0.1/qpdf/qtest/qpdf.test.contents qpdf-5.0.1/qpdf/qtest/qpdf.test
--- qpdf-5.0.1/qpdf/qtest/qpdf.test.contents	2013-10-18 19:51:30.000000000 +0200
+++ qpdf-5.0.1/qpdf/qtest/qpdf.test	2020-01-17 12:54:04.171942598 +0100
@@ -199,7 +199,7 @@ $td->runtest("remove page we don't have"
 show_ntests();
 # ----------
 $td->notify("--- Miscellaneous Tests ---");
-$n_tests += 70;
+$n_tests += 71;
 
 $td->runtest("qpdf version",
 	     {$td->COMMAND => "qpdf --version"},
@@ -545,6 +545,11 @@ $td->runtest("sanity check array size",
               $td->EXIT_STATUS => 2},
              $td->NORMALIZE_NEWLINES);
 
+$td->runtest("handle page no with contents",
+             {$td->COMMAND => "qpdf --show-pages page-no-content.pdf"},
+             {$td->FILE => "page-no-content.out", $td->EXIT_STATUS => 0},
+             $td->NORMALIZE_NEWLINES);
+
 show_ntests();
 # ----------
 $td->notify("--- Numeric range parsing tests ---");