aboutsummaryrefslogtreecommitdiff
path: root/src/archive/zip/reader_test.go
diff options
context:
space:
mode:
authorBrad Fitzpatrick <bradfitz@golang.org>2015-05-27 10:49:25 -0700
committerBrad Fitzpatrick <bradfitz@golang.org>2015-05-27 18:14:58 +0000
commit553f45a61e062abe1c3459adc288929fc8693746 (patch)
tree59c53cd09988f9c0ee1e8bed96f934d700af768f /src/archive/zip/reader_test.go
parent05d8f1d1664e6413756ed4e18392310b75501ff4 (diff)
downloadgo-553f45a61e062abe1c3459adc288929fc8693746.tar.gz
go-553f45a61e062abe1c3459adc288929fc8693746.zip
archive/zip: sanity check the TOC's declared number of files
Fixes #10956 Change-Id: If8517094f04250c4f722e1e899a237eb6e170eb9 Reviewed-on: https://go-review.googlesource.com/10421 Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> Reviewed-by: Andrew Gerrand <adg@golang.org>
Diffstat (limited to 'src/archive/zip/reader_test.go')
-rw-r--r--src/archive/zip/reader_test.go17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/archive/zip/reader_test.go b/src/archive/zip/reader_test.go
index 6a8cab34cd..4806b89458 100644
--- a/src/archive/zip/reader_test.go
+++ b/src/archive/zip/reader_test.go
@@ -551,10 +551,7 @@ func TestIssue10957(t *testing.T) {
"\v\x00\x00\x00\x00\x00")
z, err := NewReader(bytes.NewReader(data), int64(len(data)))
if err != nil {
- if z != nil {
- panic("non nil z")
- }
- return
+ t.Fatal(err)
}
for i, f := range z.File {
r, err := f.Open()
@@ -573,3 +570,15 @@ func TestIssue10957(t *testing.T) {
r.Close()
}
}
+
+// Verify the number of files is sane.
+func TestIssue10956(t *testing.T) {
+ data := []byte("PK\x06\x06PK\x06\a0000\x00\x00\x00\x00\x00\x00\x00\x00" +
+ "0000PK\x05\x06000000000000" +
+ "0000\v\x00000\x00\x00\x00\x00\x00\x00\x000")
+ _, err := NewReader(bytes.NewReader(data), int64(len(data)))
+ const want = "TOC declares impossible 3472328296227680304 files in 57 byte"
+ if err == nil && !strings.Contains(err.Error(), want) {
+ t.Errorf("error = %v; want %q", err, want)
+ }
+}