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
Thanks! This is helping a lot!
Here is the result of
pdfcpu validate -vv
crash.log Hope this helps.