- Notifications
You must be signed in to change notification settings - Fork 18.6k
Closed
Labels
Milestone
Description
The following program fails with the panic:
package main import ( "archive/zip" "bytes" "io/ioutil" ) func main() { headers := []zip.FileHeader{ {Name:"0", Method:8}, {Name:"1", Method:8}, } contents := [][]byte{ []byte("a"), []byte("abcdefgh01234567890"), } buf := new(bytes.Buffer) w := zip.NewWriter(buf) for i, h := range headers { w1, err := w.CreateHeader(&h) if err != nil { panic(err) } _, err = w1.Write(contents[i]) if err != nil { panic(err) } } err := w.Close() if err != nil { panic(err) } z1, err := zip.NewReader(bytes.NewReader(buf.Bytes()), int64(len(buf.Bytes()))) if err != nil { panic(err) } var headers1 []zip.FileHeader var contents1 [][]byte for _, f := range z1.File { r, err := f.Open() if err != nil { panic(err) } c, err := ioutil.ReadAll(r) if err != nil { panic(err) } headers1 = append(headers1, f.FileHeader) contents1 = append(contents1, c) r.Close() } }panic: unexpected EOF goroutine 1 [running]: main.main() zip.go:48 +0x8f8 go version devel +b0532a9 Mon Jun 8 05:13:15 2015 +0000 linux/amd64