From 4408a9e0059df53cc9fd248c268e79ab4e4d1c69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Motiejus=20Jak=C5=A1tys?= Date: Thu, 9 Jun 2022 14:22:19 +0300 Subject: [PATCH] rootfs: remove ./ prefix from filenames I've seen a container (private one) whose filenames start with ./, but the layer name does not have the prefix, causing undocker to fail. Let's always normalize the names to not have the prefix. --- rootfs/rootfs.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rootfs/rootfs.go b/rootfs/rootfs.go index 8494b36..5de314b 100644 --- a/rootfs/rootfs.go +++ b/rootfs/rootfs.go @@ -69,7 +69,7 @@ func Flatten(rd io.ReadSeeker, w io.Writer) (_err error) { if err != nil { return err } - layerOffsets[hdr.Name] = here + layerOffsets[strings.TrimPrefix(hdr.Name, "./")] = here } } @@ -82,7 +82,7 @@ func Flatten(rd io.ReadSeeker, w io.Writer) (_err error) { for i, name := range manifest[0].Layers { layers[i] = nameOffset{ name: name, - offset: layerOffsets[name], + offset: layerOffsets[strings.TrimPrefix(name, "./")], } }