From 4df356bd28114ff2962e92be40e5e740d3fd6ceb Mon Sep 17 00:00:00 2001 From: Julian Hille Date: Thu, 30 Jun 2022 12:52:57 +0200 Subject: [PATCH] Fix append pages when stream is not readable Fixes #191 --- CHANGELOG.md | 1 + src/deps/PDFWriter/PDFDocumentHandler.cpp | 4 ++++ tests/AppendPagesTest.js | 14 ++++++++++++-- tests/TestMaterials/appendbreaks.pdf | Bin 0 -> 32311 bytes 4 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 tests/TestMaterials/appendbreaks.pdf diff --git a/CHANGELOG.md b/CHANGELOG.md index aee9c645..1a28fdc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Fixes hard crash to exception when creating a stream with null object and calling createWriter with it - Fixes missing buffer information for recrypt typescript definition - Fixes missing options for append pdf pages +- Fixes NPE when stream is not readable in write stream object (PDFDocumentHandler) ## [2.5.0] - 2022-06-23 diff --git a/src/deps/PDFWriter/PDFDocumentHandler.cpp b/src/deps/PDFWriter/PDFDocumentHandler.cpp index de2480a7..e2867645 100755 --- a/src/deps/PDFWriter/PDFDocumentHandler.cpp +++ b/src/deps/PDFWriter/PDFDocumentHandler.cpp @@ -2032,6 +2032,10 @@ EStatusCode PDFDocumentHandler::WriteStreamObject(PDFStreamInput* inStream, IObj if(!readingDecrypted) { streamReader = mParser->StartReadingFromStreamForPlainCopying(inStream); } + + if (streamReader == NULL) { + status = PDFHummus::eFailure; + } while (it.MoveNext() && PDFHummus::eSuccess == status) { diff --git a/tests/AppendPagesTest.js b/tests/AppendPagesTest.js index 1ca89608..f22aa2fe 100644 --- a/tests/AppendPagesTest.js +++ b/tests/AppendPagesTest.js @@ -1,11 +1,21 @@ +const muhammara = require('../muhammara'); +const expect = require('chai').expect; + describe('AppendPagesTest', function() { it('should complete without error', function() { - var pdfWriter = require('../muhammara').createWriter(__dirname + '/output/AppendPagesTest.pdf'); - + var pdfWriter = muhammara.createWriter(__dirname + '/output/AppendPagesTest.pdf'); pdfWriter.appendPDFPagesFromPDF(__dirname + '/TestMaterials/Original.pdf'); pdfWriter.appendPDFPagesFromPDF(__dirname + '/TestMaterials/XObjectContent.PDF'); pdfWriter.appendPDFPagesFromPDF(__dirname + '/TestMaterials/BasicTIFFImagesTest.PDF'); pdfWriter.end(); }); + + it('should throw an error instead of a crash', () => { + var writerBuffer = new muhammara.PDFWStreamForBuffer([]); + var pdfWriter = muhammara.createWriter(writerBuffer) + expect(() => + pdfWriter.appendPDFPagesFromPDF(__dirname + '/TestMaterials/appendbreaks.pdf') + ).to.throw('unable to append') + }) }); diff --git a/tests/TestMaterials/appendbreaks.pdf b/tests/TestMaterials/appendbreaks.pdf new file mode 100644 index 0000000000000000000000000000000000000000..78c542f3c3b988c3cb4ea04a7b4f2377034e0839 GIT binary patch literal 32311 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 literal 0 HcmV?d00001