Commit 7e623fd97f4b758aff154dec9fcf6155f9ee1661

Authored by m-holger
Committed by GitHub
2 parents 6ccbc121 14dba6a7

Merge pull request #1542 from m-holger/fuzz

Add key and value validation in `NNTreeImpl` replacement logic to ens…
fuzz/CMakeLists.txt
... ... @@ -164,6 +164,7 @@ set(CORPUS_OTHER
164 164 4720043549327360.fuzz
165 165 5109284021272576.fuzz
166 166 5828408539152384.fuzz
  167 + 6310410941956096.fuzz
167 168 6489005569146880.fuzz
168 169 )
169 170  
... ...
fuzz/qpdf_extra/6310410941956096.fuzz 0 → 100644
No preview for this file type
fuzz/qtest/fuzz.test
... ... @@ -11,7 +11,7 @@ my $td = new TestDriver('fuzz');
11 11  
12 12 my $qpdf_corpus = $ENV{'QPDF_FUZZ_CORPUS'} || die "must set QPDF_FUZZ_CORPUS";
13 13  
14   -my $n_qpdf_files = 102; # increment when adding new files
  14 +my $n_qpdf_files = 103; # increment when adding new files
15 15  
16 16 my @fuzzers = (
17 17 ['ascii85' => 1],
... ...
libqpdf/NNTree.cc
... ... @@ -666,7 +666,7 @@ NNTreeImpl::repair()
666 666 NNTreeImpl repl(qpdf, new_node, key_type, value_valid, false);
667 667 std::map<QPDFObjectHandle, QPDFObjectHandle, Cmp> items;
668 668 for (auto const& [key, value]: *this) {
669   - if (key && value) {
  669 + if (key && value && repl.keyValid(key) && repl.value_valid(value) ) {
670 670 items.insert_or_assign(key, value);
671 671 }
672 672 }
... ...