diff options
Diffstat (limited to 'objectstore/loose/parse.go')
| -rw-r--r-- | objectstore/loose/parse.go | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/objectstore/loose/parse.go b/objectstore/loose/parse.go index fc678262..4021e333 100644 --- a/objectstore/loose/parse.go +++ b/objectstore/loose/parse.go @@ -34,16 +34,16 @@ func parseRaw(raw []byte) (objecttype.Type, []byte, error) { return ty, content, nil } -// readHeader reads and parses a loose object header from br. -// br must be positioned at the start of decoded loose object bytes. -func readHeader(br *bufio.Reader) (objecttype.Type, int64, error) { +// readHeader reads and parses a loose object header from br, and returns +// the raw header bytes including the trailing NUL. +func readHeader(br *bufio.Reader) ([]byte, objecttype.Type, int64, error) { header, err := br.ReadSlice(0) if err != nil { - return objecttype.TypeInvalid, 0, err + return nil, objecttype.TypeInvalid, 0, err } ty, size, _, ok := objectheader.Parse(header) if !ok { - return objecttype.TypeInvalid, 0, errors.New("objectstore/loose: malformed object header") + return nil, objecttype.TypeInvalid, 0, errors.New("objectstore/loose: malformed object header") } - return ty, size, nil + return header, ty, size, nil } |
