]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
apparmor: fix fmt string type error in process_strs_entry
authorJohn Johansen <john.johansen@canonical.com>
Mon, 2 Feb 2026 11:45:21 +0000 (03:45 -0800)
committerJohn Johansen <john.johansen@canonical.com>
Mon, 2 Feb 2026 12:16:15 +0000 (04:16 -0800)
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: c140dcd1246bf ("apparmor: make str table more generic and be able to have multiple entries")
Signed-off-by: John Johansen <john.johansen@canonical.com>
security/apparmor/policy_unpack.c

index f86133f36f3319e1ca796824b7cb460b0fac648d..175445c098960ca5379f6d7e83f9ec1dfd3baed9 100644 (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) {