From 080caeb9e30c884ab78354eae80c53cc47d8d49b Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Mon, 24 Nov 2025 08:04:19 +0100 Subject: pkg/hash: support hashing strings Currently passing wrong types (e.g. a string) to hash.Hash/String leads to silent misbehavior: the part is ignored in the hash. This is a very bad failure mode. Panic loudly. And support hashing strings. --- pkg/hash/hash.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'pkg/hash') diff --git a/pkg/hash/hash.go b/pkg/hash/hash.go index 350d3a3e8..6b3005fc3 100644 --- a/pkg/hash/hash.go +++ b/pkg/hash/hash.go @@ -16,7 +16,12 @@ type Sig [sha1.Size]byte func Hash(pieces ...any) Sig { h := sha1.New() for _, data := range pieces { - binary.Write(h, binary.LittleEndian, data) + if str, ok := data.(string); ok { + data = []byte(str) + } + if err := binary.Write(h, binary.LittleEndian, data); err != nil { + panic(err) + } } var sig Sig copy(sig[:], h.Sum(nil)) -- cgit mrf-deployment