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