mirror of
https://github.com/restic/restic.git
synced 2026-05-29 21:35:23 +00:00
panic if hash returns an error
Add a sanity check that the interface contract is honoured.
This commit is contained in:
@@ -91,7 +91,10 @@ func (be *MemoryBackend) Save(ctx context.Context, h restic.Handle, rd restic.Re
|
||||
|
||||
beHash := be.Hasher()
|
||||
// must never fail according to interface
|
||||
_, _ = beHash.Write(buf)
|
||||
_, err = beHash.Write(buf)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if !bytes.Equal(beHash.Sum(nil), rd.Hash()) {
|
||||
return errors.Errorf("invalid file hash or content, got %s expected %s",
|
||||
base64.RawStdEncoding.EncodeToString(beHash.Sum(nil)),
|
||||
|
||||
@@ -547,7 +547,10 @@ func (s *Suite) TestSave(t *testing.T) {
|
||||
if b.Hasher() != nil {
|
||||
beHasher := b.Hasher()
|
||||
// must never fail according to interface
|
||||
_, _ = beHasher.Write(data)
|
||||
_, err := beHasher.Write(data)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
beHash = beHasher.Sum(nil)
|
||||
}
|
||||
err = b.Save(context.TODO(), h, errorCloser{
|
||||
|
||||
Reference in New Issue
Block a user