}
}
-// Issue 4302.
-func TestInvalidExtraHedaer(t *testing.T) {
- const timeFormat = "20060102T150405.000.txt"
-
+func testInvalidHeader(h *FileHeader, t *testing.T) {
var buf bytes.Buffer
z := NewWriter(&buf)
+ f, err := z.CreateHeader(h)
+ if err != nil {
+ t.Fatalf("error creating header: %v", err)
+ }
+ if _, err := f.Write([]byte("hi")); err != nil {
+ t.Fatalf("error writing content: %v", err)
+ }
+ if err := z.Close(); err != nil {
+ t.Fatal("error closing zip writer: %v", err)
+ }
+
+ b := buf.Bytes()
+ if _, err = NewReader(bytes.NewReader(b), int64(len(b))); err != ErrFormat {
+ t.Fatal("got %v, expected ErrFormat", err)
+ }
+}
+
+// Issue 4302.
+func TestHeaderInvalidTagAndSize(t *testing.T) {
+ const timeFormat = "20060102T150405.000.txt"
+
ts := time.Now()
filename := ts.Format(timeFormat)
}
h.SetModTime(ts)
- fh, err := z.CreateHeader(&h)
- if err != nil {
- t.Fatalf("error creating header: %v", err)
- }
- if _, err := fh.Write([]byte("hi")); err != nil {
- t.Fatalf("error writing content: %v", err)
- }
- if err := z.Close(); err != nil {
- t.Fatal("error closing zip writer: %v", err)
- }
+ testInvalidHeader(&h, t)
+}
- b := buf.Bytes()
- if _, err = NewReader(bytes.NewReader(b), int64(len(b))); err == nil {
- t.Fatal("expected ErrFormat")
+func TestHeaderTooShort(t *testing.T) {
+ h := FileHeader{
+ Name: "foo.txt",
+ Method: Deflate,
+ Extra: []byte{zip64ExtraId}, // missing size
}
+ testInvalidHeader(&h, t)
}