From c8dba5dcb52c1957abcd4c6011d8a66498710f56 Mon Sep 17 00:00:00 2001 From: Catherine Date: Sat, 30 May 2026 14:04:10 +0000 Subject: [PATCH] Fix opaque panic when ingesting an invalid tar file. Use PUT to upload the following tar file (`unzstd | base64 -d`): KLUv/QRY7QIAcoQOFLCnDQ0QaaURkYASyN1LJveuZAKkXivfoQMXZ5MhIGJAXHUWHclJufKB PLvNDSbmD81Htf9W1f/3BgsA/QPwwAuojAHiDA8mpAEqhsJB8IUcTATEusLVn0AbU7ZnkA== After this commit it should no longer crash the handler. V12-Ref: F-77219 --- src/extract.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/extract.go b/src/extract.go index 2cf20d6..333d6d4 100644 --- a/src/extract.go +++ b/src/extract.go @@ -124,10 +124,10 @@ func ExtractTar(ctx context.Context, reader io.Reader, oldManifest *Manifest) (* dataBytesTransferred += int64(len(header.Linkname)) // actual symlink } case tar.TypeLink: - if entry, found := hardLinks[header.Linkname]; found { + if entry, found := hardLinks[header.Linkname]; found && entry != nil { manifest.Contents[fileName] = entry } else { - AddProblem(manifest, fileName, "tar: invalid hardlink %q", header.Linkname) + AddProblem(manifest, fileName, "tar: invalid hardlink to %q", header.Linkname) } case tar.TypeDir: AddDirectory(manifest, fileName)