Commit 4b3124de authored by Christian Göttsche's avatar Christian Göttsche Committed by Paul Moore
Browse files

selinux: update numeric format specifiers for ebitmaps



Use the correct, according to Documentation/core-api/printk-formats.rst,
format specifiers for numeric arguments in string formatting.
The general bit type is u32 thus use %u, EBITMAP_SIZE is a constant
computed via sizeof() thus use %zu.

Fixes: 0142c566 ("selinux: reject invalid ebitmaps")
Reported-by: default avatarStephen Rothwell <sfr@canb.auug.org.au>
Closes: https://lore.kernel.org/linux-next/20240327131044.2c629921@canb.auug.org.au/


Signed-off-by: default avatarChristian Göttsche <cgzones@googlemail.com>
Signed-off-by: default avatarPaul Moore <paul@paul-moore.com>
parent 42c77323
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -381,7 +381,7 @@ int ebitmap_read(struct ebitmap *e, void *fp)

	if (mapunit != BITS_PER_U64) {
		pr_err("SELinux: ebitmap: map size %u does not "
		       "match my size %zd (high bit was %d)\n",
		       "match my size %zd (high bit was %u)\n",
		       mapunit, BITS_PER_U64, e->highbit);
		goto bad;
	}
@@ -407,13 +407,13 @@ int ebitmap_read(struct ebitmap *e, void *fp)
		startbit = le32_to_cpu(ebitmap_start);

		if (startbit & (mapunit - 1)) {
			pr_err("SELinux: ebitmap start bit (%d) is "
			pr_err("SELinux: ebitmap start bit (%u) is "
			       "not a multiple of the map unit size (%u)\n",
			       startbit, mapunit);
			goto bad;
		}
		if (startbit > e->highbit - mapunit) {
			pr_err("SELinux: ebitmap start bit (%d) is "
			pr_err("SELinux: ebitmap start bit (%u) is "
			       "beyond the end of the bitmap (%u)\n",
			       startbit, (e->highbit - mapunit));
			goto bad;
@@ -436,8 +436,8 @@ int ebitmap_read(struct ebitmap *e, void *fp)
				e->node = tmp;
			n = tmp;
		} else if (startbit <= n->startbit) {
			pr_err("SELinux: ebitmap: start bit %d"
			       " comes after start bit %d\n",
			pr_err("SELinux: ebitmap: start bit %u"
			       " comes after start bit %u\n",
			       startbit, n->startbit);
			goto bad;
		}
@@ -461,7 +461,7 @@ int ebitmap_read(struct ebitmap *e, void *fp)
	}

	if (n && n->startbit + EBITMAP_SIZE != e->highbit) {
		pr_err("SELinux: ebitmap: high bit %d is not equal to the expected value %ld\n",
		pr_err("SELinux: ebitmap: high bit %u is not equal to the expected value %zu\n",
		       e->highbit, n->startbit + EBITMAP_SIZE);
		goto bad;
	}