pdfcpu: index out of range

Hi, I get an index out of range error for a file. I can’t share the PDF file with you here but I can share it in private email so you can reproduce it. Is this okay?

Here is the code:

package main

import (
	"log"
	"os"

	"github.com/pdfcpu/pdfcpu/pkg/api"
)

func main() {
	if len(os.Args) < 3 {
		log.Printf("\nUsage:\n\t%s <inputfile> <output-dir>\n\n", os.Args[0])
	}

	inputFile := os.Args[1]
	outputDir := os.Args[2]

	f, err := os.Open(inputFile)
	if err != nil {
		log.Fatalf("Unable to open file '%s': %v", inputFile, err)
	}

	err = api.ExtractImages(f, outputDir, nil, nil)
	if err != nil {
		log.Fatalf("Unable to extract images from '%s' into '%s': %v", inputFile, outputDir, err)
	}
}

And here is the output:

borud@sl:~/git/p/ds(reorg)$ bin/pdfsplit 1.pdf /tmp
panic: runtime error: index out of range

goroutine 1 [running]:
github.com/pdfcpu/pdfcpu/ccitt.(*pixelBuf).setPix(...)
	/Users/borud/go/pkg/mod/github.com/pdfcpu/pdfcpu@v0.2.3/ccitt/reader.go:85
github.com/pdfcpu/pdfcpu/ccitt.(*pixelBuf).addRun(0xc0000102a0, 0x86, 0x408, 0xd9, 0x11f6301)
	/Users/borud/go/pkg/mod/github.com/pdfcpu/pdfcpu@v0.2.3/ccitt/reader.go:93 +0xab
github.com/pdfcpu/pdfcpu/ccitt.(*decoder).handlePass(0xc0000f6120)
	/Users/borud/go/pkg/mod/github.com/pdfcpu/pdfcpu@v0.2.3/ccitt/reader.go:329 +0x73
github.com/pdfcpu/pdfcpu/ccitt.(*decoder).decodeGroup4(0xc0000f6120)
	/Users/borud/go/pkg/mod/github.com/pdfcpu/pdfcpu@v0.2.3/ccitt/reader.go:601 +0xb8
github.com/pdfcpu/pdfcpu/ccitt.(*decoder).decode(0xc0000f6120)
	/Users/borud/go/pkg/mod/github.com/pdfcpu/pdfcpu@v0.2.3/ccitt/reader.go:629 +0x44
github.com/pdfcpu/pdfcpu/ccitt.(*decoder).Read(0xc0000f6120, 0xc000116000, 0x200, 0x200, 0x30, 0x28, 0xc0000a9908)
	/Users/borud/go/pkg/mod/github.com/pdfcpu/pdfcpu@v0.2.3/ccitt/reader.go:643 +0x31
bytes.(*Buffer).ReadFrom(0xc000010240, 0x1644198, 0xc0000f6120, 0x16441d8, 0xc000010240, 0x5a0000c0000fa701)
	/usr/local/Cellar/go/1.12.7/libexec/src/bytes/buffer.go:207 +0xbd
io.copyBuffer(0x1277ca0, 0xc000010240, 0x1644198, 0xc0000f6120, 0x0, 0x0, 0x0, 0xc000010210, 0xc000044c00, 0x0)
	/usr/local/Cellar/go/1.12.7/libexec/src/io/io.go:388 +0x2fc
io.Copy(...)
	/usr/local/Cellar/go/1.12.7/libexec/src/io/io.go:364
github.com/pdfcpu/pdfcpu/pkg/filter.ccittDecode.Decode(0xc000010210, 0x1277cc0, 0xc0000101e0, 0x0, 0x0, 0x0)
	/Users/borud/go/pkg/mod/github.com/pdfcpu/pdfcpu@v0.2.3/pkg/filter/ccittDecode.go:80 +0x33c
github.com/pdfcpu/pdfcpu/pkg/pdfcpu.decodeStream(0xc000188460, 0xc0000fa750, 0x122e109)
	/Users/borud/go/pkg/mod/github.com/pdfcpu/pdfcpu@v0.2.3/pkg/pdfcpu/filter.go:165 +0x4b5
github.com/pdfcpu/pdfcpu/pkg/pdfcpu.ExtractImageData(0xc0000fa330, 0x11, 0x11, 0xc0000a9ce2, 0x1)
	/Users/borud/go/pkg/mod/github.com/pdfcpu/pdfcpu@v0.2.3/pkg/pdfcpu/extract.go:88 +0x5be
github.com/pdfcpu/pdfcpu/pkg/api.doExtractImages(0xc0000fa330, 0xc000091290, 0x0, 0x0)
	/Users/borud/go/pkg/mod/github.com/pdfcpu/pdfcpu@v0.2.3/pkg/api/extract.go:71 +0x262
github.com/pdfcpu/pdfcpu/pkg/api.ExtractImages(0x1279880, 0xc00008c078, 0x7ffeefbffb41, 0x4, 0x0, 0x0, 0x0, 0xc0000f6000, 0xd4, 0xc0000f2000)
	/Users/borud/go/pkg/mod/github.com/pdfcpu/pdfcpu@v0.2.3/pkg/api/extract.go:115 +0x1bd
main.main()
	/Users/borud/git/p/ds/cmd/pdfsplit/main.go:27 +0x181

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 19

Most upvoted comments

Thanks! This is helping a lot!

Here is the result of pdfcpu validate -vv crash.log Hope this helps.