debug/elf: index out of range (original) (raw)
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