From 7729720d69aa247e591f1b6fa6232facf7c417fa Mon Sep 17 00:00:00 2001 From: vsenko Date: Wed, 4 May 2022 09:35:46 +0000 Subject: [PATCH 1/3] Fix crashes induces by malformed compressed data --- reader.go | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/reader.go b/reader.go index 6d70d4e..f73f731 100644 --- a/reader.go +++ b/reader.go @@ -506,7 +506,10 @@ func (this *PdfReader) resolveCompressedObject(objSpec *PdfValue) (*PdfValue, er // Decompress if filter is /FlateDecode // Uncompress zlib compressed data var out bytes.Buffer - zlibReader, _ := zlib.NewReader(bytes.NewBuffer(compressedObj.Stream.Bytes)) + zlibReader, err := zlib.NewReader(bytes.NewBuffer(compressedObj.Stream.Bytes)) + if err != nil { + return nil, errors.Wrap(err, "Failed to uncompress data") + } defer zlibReader.Close() io.Copy(&out, zlibReader) @@ -1422,7 +1425,10 @@ func (this *PdfReader) rebuildContentStream(content *PdfValue) ([]byte, error) { case "/FlateDecode": // Uncompress zlib compressed data var out bytes.Buffer - zlibReader, _ := zlib.NewReader(bytes.NewBuffer(stream)) + zlibReader, err := zlib.NewReader(bytes.NewBuffer(stream)) + if err != nil { + return nil, errors.Wrap(err, "Failed to uncompress data") + } defer zlibReader.Close() io.Copy(&out, zlibReader) From bb497e771c56c1c3587ab0b26d929ce7139ceaf9 Mon Sep 17 00:00:00 2001 From: vsenko Date: Fri, 13 May 2022 09:49:32 +0000 Subject: [PATCH 2/3] Change module name --- go.mod | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go.mod b/go.mod index 25e7cf9..2cfb9f4 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module github.com/phpdave11/gofpdi +module github.com/vsenko/gofpdi go 1.12 From 4ccf405e66af816acd5507e97b87c83d55d70506 Mon Sep 17 00:00:00 2001 From: vsenko Date: Tue, 3 Oct 2023 11:35:28 +0000 Subject: [PATCH 3/3] Fix import of a multipage file with different page size configurations --- writer.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/writer.go b/writer.go index 45b4cc0..84e1290 100644 --- a/writer.go +++ b/writer.go @@ -121,7 +121,7 @@ func (this *PdfWriter) ImportPage(reader *PdfReader, pageno int, boxName string) this.k = 1 // Get all page boxes - pageBoxes, err := reader.getPageBoxes(1, this.k) + pageBoxes, err := reader.getPageBoxes(pageno, this.k) if err != nil { return -1, errors.Wrap(err, "Failed to get page boxes") }