diff options
Diffstat (limited to 'common/state/backend_storage.c')
-rw-r--r-- | common/state/backend_storage.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/common/state/backend_storage.c b/common/state/backend_storage.c index 52f4aedee7..f1b3f5a6b2 100644 --- a/common/state/backend_storage.c +++ b/common/state/backend_storage.c @@ -111,15 +111,18 @@ int state_storage_read(struct state_backend_storage *storage, int ret; list_for_each_entry(bucket, &storage->buckets, bucket_list) { - *len = 0; - ret = bucket->read(bucket, buf, len); if (ret) { dev_warn(storage->dev, "Failed to read from state backend bucket, trying next, %d\n", ret); continue; } - ret = format->verify(format, magic, *buf, *len); + + /* + * Verify the buffer crcs. The buffer length is passed in the len argument, + * .verify overwrites it with the length actually used. + */ + ret = format->verify(format, magic, *buf, len); if (!ret) { goto found; } |