apparmor: fix fmt string type error in process_strs_entry

pointer subtraction has a type of int when using clang on hexagon,
microblaze (and possibly other archs). We know the subtraction is
postive so cast the expression to unsigned long to match what is in
the fmt string.

Reported-by: kernel test robot <lkp@intel.com>
Closes: https://lore.kernel.org/oe-kbuild-all/202602021429.CcmWkR9K-lkp@intel.com/
Closes: https://lore.kernel.org/oe-kbuild-all/202602021427.PvvDjgyL-lkp@intel.com/
Closes: https://lore.kernel.org/oe-kbuild-all/202602021510.JPzX5zKb-lkp@intel.com/
Fixes: c140dcd124 ("apparmor: make str table more generic and be able to have multiple entries")
Signed-off-by: John Johansen <john.johansen@canonical.com>
This commit is contained in:
John Johansen
2026-02-02 03:45:21 -08:00
parent 3734b9463b
commit 102ada7ca3

View File

@@ -474,7 +474,7 @@ static int process_strs_entry(char *str, int size, bool multi)
if (!*str) {
AA_DEBUG(DEBUG_UNPACK,
"starting with null save=%lu size %d c=%d",
str - save, size, c);
(unsigned long)(str - save), size, c);
return -4;
}
if (isspace(*str))
@@ -545,7 +545,8 @@ static int unpack_strs_table(struct aa_ext *e, const char *name, bool multi,
c = process_strs_entry(str, size2, multi);
if (c <= 0) {
AA_DEBUG(DEBUG_UNPACK, "process_strs %d i %d pos %ld",
c, i, e->pos - saved_pos);
c, i,
(unsigned_long) e->pos - saved_pos);
goto fail;
}
if (!multi && c > 1) {