diff --git a/writer.go b/writer.go index 352bd35..7eab785 100644 --- a/writer.go +++ b/writer.go @@ -196,6 +196,10 @@ func (aw *Writer) WriteHeader(hdr *Header) error { header := make([]byte, HEADER_BYTE_SIZE) s := slicer(header) + if len(hdr.Name) == 0 { + return errors.New("ar: empty file name") + } + switch aw.variant { case GNU: // "/" is always appended to GNU-variant file names, which means that any file names over 15 bytes diff --git a/writer_test.go b/writer_test.go index ac8f2e7..24333cb 100644 --- a/writer_test.go +++ b/writer_test.go @@ -26,6 +26,7 @@ func TestWriteTooLong(t *testing.T) { body := "Hello world!\n" hdr := new(Header) + hdr.Name = "hello.txt" hdr.Size = 1 var buf bytes.Buffer