forked from TrueCloudLab/restic
cache: correctly ignore files whose filename is no ID
this can for example be the case for temporary files created by the backend implementation.
This commit is contained in:
parent
a12a6edfd1
commit
1f4c9d2806
2 changed files with 19 additions and 3 deletions
5
internal/backend/cache/backend.go
vendored
5
internal/backend/cache/backend.go
vendored
|
@ -231,9 +231,8 @@ func (b *Backend) List(ctx context.Context, t backend.FileType, fn func(f backen
|
|||
wrapFn := func(f backend.FileInfo) error {
|
||||
id, err := restic.ParseID(f.Name)
|
||||
if err != nil {
|
||||
// returning error here since, if we cannot parse the ID, the file
|
||||
// is invalid and the list must exit.
|
||||
return err
|
||||
// ignore files with invalid name
|
||||
return nil
|
||||
}
|
||||
|
||||
ids.Insert(id)
|
||||
|
|
17
internal/backend/cache/backend_test.go
vendored
17
internal/backend/cache/backend_test.go
vendored
|
@ -296,3 +296,20 @@ func TestAutomaticCacheClear(t *testing.T) {
|
|||
t.Errorf("cache doesn't have file2 after list")
|
||||
}
|
||||
}
|
||||
|
||||
func TestAutomaticCacheClearInvalidFilename(t *testing.T) {
|
||||
be := mem.New()
|
||||
c := TestNewCache(t)
|
||||
|
||||
data := test.Random(rand.Int(), 42)
|
||||
h := backend.Handle{
|
||||
Type: backend.IndexFile,
|
||||
Name: "tmp12345",
|
||||
}
|
||||
save(t, be, h, data)
|
||||
|
||||
wbe := c.Wrap(be)
|
||||
|
||||
// list all files in the backend
|
||||
list(t, wbe, func(_ backend.FileInfo) error { return nil })
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue