+ for (off = hdr.capabilities; off && ecode == TDB_SUCCESS; off = next) {
+ const struct tdb_capability *cap;
+ enum TDB_ERROR err;
+
+ cap = tdb_access_read(tdb, off, sizeof(*cap), true);
+ if (TDB_PTR_IS_ERR(cap)) {
+ return TDB_PTR_ERR(cap);
+ }
+
+ /* All capabilities are unknown. */
+ err = unknown_capability(tdb, "tdb_check", cap->type);
+ next = cap->next;
+ tdb_access_release(tdb, cap);
+ if (err)
+ return err;
+ (*num_capabilities)++;
+ }
+