diff --git a/pkg/tarsum/fileinfosums.go b/pkg/tarsum/fileinfosums.go index 5abf5e7ba3..908131ebc9 100644 --- a/pkg/tarsum/fileinfosums.go +++ b/pkg/tarsum/fileinfosums.go @@ -1,6 +1,10 @@ package tarsum -import "sort" +import ( + "runtime" + "sort" + "strings" +) // FileInfoSumInterface provides an interface for accessing file checksum // information within a tar file. This info is accessed through interface @@ -35,8 +39,11 @@ type FileInfoSums []FileInfoSumInterface // GetFile returns the first FileInfoSumInterface with a matching name. func (fis FileInfoSums) GetFile(name string) FileInfoSumInterface { + // We do case insensitive matching on Windows as c:\APP and c:\app are + // the same. See issue #33107. for i := range fis { - if fis[i].Name() == name { + if (runtime.GOOS == "windows" && strings.EqualFold(fis[i].Name(), name)) || + (runtime.GOOS != "windows" && fis[i].Name() == name) { return fis[i] } }