From 7db4509d80242cc03cc7228c50e88248c8eeb02f Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Mon, 26 Jan 2026 10:34:14 +0100 Subject: [PATCH] flask: fix gcov build with gcc14+ Gcc's "threading" of conditionals can lead to undue warnings, as reported in e.g. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=116519 (no matter that the overall situation is different there). While my gcc15 complains ("buf[2] may be used uninitialized in this function") about only two of the three instances (not about the one in type_read()), adjust all three to be on the safe side. Signed-off-by: Jan Beulich Acked-by: Daniel P. Smith --- xen/xsm/flask/ss/policydb.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/xen/xsm/flask/ss/policydb.c b/xen/xsm/flask/ss/policydb.c index 165304c133..f3674371ac 100644 --- a/xen/xsm/flask/ss/policydb.c +++ b/xen/xsm/flask/ss/policydb.c @@ -1271,7 +1271,10 @@ static int cf_check role_read(struct policydb *p, struct hashtab *h, void *fp) if ( ver >= POLICYDB_VERSION_BOUNDARY ) rc = next_entry(buf, fp, sizeof(buf[0]) * 3); else + { rc = next_entry(buf, fp, sizeof(buf[0]) * 2); + buf[2] = cpu_to_le32(0); /* gcc14 onwards */ + } if ( rc < 0 ) goto bad; @@ -1342,7 +1345,10 @@ static int cf_check type_read(struct policydb *p, struct hashtab *h, void *fp) if ( ver >= POLICYDB_VERSION_BOUNDARY ) rc = next_entry(buf, fp, sizeof(buf[0]) * 4); else + { rc = next_entry(buf, fp, sizeof(buf[0]) * 3); + buf[3] = cpu_to_le32(0); /* gcc14 onwards */ + } if ( rc < 0 ) goto bad; @@ -1436,7 +1442,10 @@ static int cf_check user_read(struct policydb *p, struct hashtab *h, void *fp) if ( ver >= POLICYDB_VERSION_BOUNDARY ) rc = next_entry(buf, fp, sizeof(buf[0]) * 3); else + { rc = next_entry(buf, fp, sizeof(buf[0]) * 2); + buf[2] = cpu_to_le32(0); /* gcc14 onwards */ + } if ( rc < 0 ) goto bad;