Closed
Description
The following program crashes with the panic:
package main
import (
"bytes"
"debug/elf"
)
func main() {
data := []byte("\u007fELF\x02\x01\x010000000000000" +
"\x010000000000000000000" +
"\x00\x00\x00\x00\x00\x00\x00\x0000000000\x00\x00\x00\x00" +
"0000")
f, err := elf.NewFile(bytes.NewReader(data))
if err != nil {
if f != nil {
panic("file is not nil on error")
}
return
}
defer f.Close()
f.DynamicSymbols()
f.ImportedLibraries()
f.ImportedSymbols()
f.Section(".data")
f.SectionByType(elf.SHT_GNU_VERSYM)
f.Symbols()
dw, err := f.DWARF()
if err != nil {
if dw != nil {
panic("dwarf is not nil on error")
}
return
}
dr := dw.Reader()
for {
e, _ := dr.Next()
if e == nil {
break
}
}
}
panic: runtime error: index out of range
goroutine 1 [running]:
debug/elf.NewFile(0x7f6e0f6071c0, 0xc208014420, 0x63d900, 0x0, 0x0)
src/debug/elf/file.go:380 +0x1484
main.main()
elftest.go:13 +0x10e
on commit 596bb76