From 6e9f256c6835f5739c9efc64050b54bfaf11c140 Mon Sep 17 00:00:00 2001 From: Markus Armbruster Date: Sun, 26 Jun 2016 06:51:25 +0200 Subject: [PATCH] ef_verify: Run verify_row() even for tables without selectors verify_table() skips verify_row() when the table doesn't have selectors. But verify_row()'s test for corrupt headers in EFF_TYPED tables doesn't require selectors. Harmless, since the two tables that don't have selectors (EF_MAP and EF_BMAP) aren't EFF_TYPED. Clean it up anyway. Signed-off-by: Markus Armbruster --- src/lib/common/ef_verify.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/lib/common/ef_verify.c b/src/lib/common/ef_verify.c index 041a92f0a..7ab031839 100644 --- a/src/lib/common/ef_verify.c +++ b/src/lib/common/ef_verify.c @@ -72,7 +72,7 @@ verify_ca(int type) struct castr *ca = ef_cadef(type); int i; - for (i = 0; ca[i].ca_name; i++) { + for (i = 0; ca && ca[i].ca_name; i++) { /* * Virtual selectors can't be used in xundump, since we lack a * setter to go with ca_get(). @@ -160,7 +160,7 @@ verify_row(int type, int row) if (!empobj_in_use(type, row_ref)) goto out; - for (i = 0; ca[i].ca_name; ++i) { + for (i = 0; ca && ca[i].ca_name; ++i) { if (ca[i].ca_get) continue; /* virtual */ n = CA_ARRAY_LEN(&ca[i]); @@ -201,8 +201,6 @@ verify_table(int type) int retval = 0; int i; - if (!ef_cadef(type)) - return 0; verify_ca(type); for (i = 0; i < ef_nelem(type); i++) retval |= verify_row(type, i); -- 2.43.0