From 26647411ed168a0727d914c729f5c9ed6051c353 Mon Sep 17 00:00:00 2001 From: Catherine Date: Sat, 20 Sep 2025 14:57:53 +0000 Subject: [PATCH] Fix tar file extractor. --- src/extract.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/extract.go b/src/extract.go index ac3bb9e..882dbfc 100644 --- a/src/extract.go +++ b/src/extract.go @@ -32,11 +32,9 @@ func ExtractTar(reader io.Reader) (*Manifest, error) { manifestEntry := Entry{} switch header.Typeflag { case tar.TypeReg: - fileData := make([]byte, header.Size) - length, err := archive.Read(fileData) - if !(length == int(header.Size) && err == io.EOF) { - return nil, fmt.Errorf("tar: read: %w (expected %d bytes, read %d)", - err, header.Size, length) + fileData, err := io.ReadAll(archive) + if err != nil { + return nil, fmt.Errorf("tar: read %s: %w", fileName, err) } manifestEntry.Type = Type_InlineFile.Enum() @@ -98,7 +96,7 @@ func ExtractZip(reader io.Reader) (*Manifest, error) { fileData, err := io.ReadAll(fileReader) if err != nil { - return nil, fmt.Errorf("zip: read: %w", err) + return nil, fmt.Errorf("zip: read %s: %w", file.Name, err) } manifestEntry.Type = Type_InlineFile.Enum()