[PATCH 1/1] UBUNTU: AppArmor: fix argument size missmatch on 64 bit builds
Andy Whitcroft
apw at canonical.com
Tue Jul 21 11:16:07 UTC 2009
When building AppArmor on 64 bit we see a warning as below:
.../apparmor/policy_interface.c: In function ‘audit_cb’:
.../apparmor/policy_interface.c:101: warning: format ‘%d’ expects type
‘int’, but argument 3 has type ‘long int’
This is triggered by the log format below. We are printing the
difference
between two pointers which is potentially a long on 64bit.
static void audit_cb(struct audit_buffer *ab, void *va)
{
[...]
if (sa->base.error && sa->e)
audit_log_format(ab, " offset=%d", sa->e->pos - sa->e->start);
}
Convert this delta to a long for printing.
Signed-off-by: Andy Whitcroft <apw at canonical.com>
---
ubuntu/apparmor/policy_interface.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/ubuntu/apparmor/policy_interface.c b/ubuntu/apparmor/policy_interface.c
index 24277dc..a3a9425 100644
--- a/ubuntu/apparmor/policy_interface.c
+++ b/ubuntu/apparmor/policy_interface.c
@@ -92,13 +92,14 @@ static void aa_audit_init(struct aa_audit_iface *sa, const char *operation,
static void audit_cb(struct audit_buffer *ab, void *va)
{
struct aa_audit_iface *sa = va;
+ long len = sa->e->pos - sa->e->start;
if (sa->name)
audit_log_format(ab, " name=%s", sa->name);
if (sa->name2)
audit_log_format(ab, " namespace=%s", sa->name2);
if (sa->base.error && sa->e)
- audit_log_format(ab, " offset=%d", sa->e->pos - sa->e->start);
+ audit_log_format(ab, " offset=%ld", len);
}
static int aa_audit_iface(struct aa_audit_iface *sa)
--
1.6.3.rc3.199.g24398
More information about the kernel-team
mailing list