Skip to content

Commit 198f913

Browse files
committed
fix(localMeta): Make sure localMeta contains delegated targets
1 parent ed6788e commit 198f913

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

client/client.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"io/ioutil"
99

1010
"github.com/theupdateframework/go-tuf/data"
11+
"github.com/theupdateframework/go-tuf/internal/roles"
1112
"github.com/theupdateframework/go-tuf/util"
1213
"github.com/theupdateframework/go-tuf/verify"
1314
)
@@ -461,6 +462,13 @@ func (c *Client) getLocalMeta() error {
461462
c.loadTargets(targets.Targets)
462463
}
463464
}
465+
466+
for fileName := range meta {
467+
if roles.IsDelegatedTargetsManifest(fileName) {
468+
c.localMeta[fileName] = meta[fileName]
469+
}
470+
}
471+
464472
if loadFailed {
465473
// If any of the metadata failed to be verified, return the reason for that failure
466474
return retErr

client/delegations_test.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,17 +226,27 @@ func TestPersistedMeta(t *testing.T) {
226226
p, err := c.local.GetMeta()
227227
assert.Nil(t, err)
228228
persisted := copyStore(p)
229+
persistedLocal := copyStore(c.localMeta)
229230
// trim non targets metas
230231
for _, notTargets := range []string{"root.json", "snapshot.json", "timestamp.json"} {
231232
delete(persisted, notTargets)
233+
delete(persistedLocal, notTargets)
232234
}
233235
for _, targets := range tt.targets {
236+
// Test local store
234237
storedVersion, err := versionOfStoredTargets(targets.name, persisted)
235238
assert.Equal(t, targets.version, storedVersion)
236239
assert.Nil(t, err)
237240
delete(persisted, targets.name)
241+
242+
// Test localMeta
243+
storedVersion, err = versionOfStoredTargets(targets.name, persistedLocal)
244+
assert.Equal(t, targets.version, storedVersion)
245+
assert.Nil(t, err)
246+
delete(persistedLocal, targets.name)
238247
}
239248
assert.Empty(t, persisted)
249+
assert.Empty(t, persistedLocal)
240250
})
241251
}
242252
}

0 commit comments

Comments
 (0)