]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
audit: properly encode device path in cgroup audit
authorEric Blake <eblake@redhat.com>
Fri, 19 Apr 2013 17:30:44 +0000 (11:30 -0600)
committerEric Blake <eblake@redhat.com>
Mon, 22 Apr 2013 20:51:03 +0000 (14:51 -0600)
https://bugzilla.redhat.com/show_bug.cgi?id=922186

Commit d04916fa introduced a regression in audit quality - even
though the code was computing the proper escaped name for a
path, it wasn't feeding that escaped name on to the audit message.
As a result, /var/log/audit/audit.log would mention a pair of
fields class=path path=/dev/hpet instead of the intended
class=path path="/dev/hpet", which in turn caused ausearch to
format the audit log with path=(null).

* src/conf/domain_audit.c (virDomainAuditCgroupPath): Use
constructed encoding.

Signed-off-by: Eric Blake <eblake@redhat.com>
(cherry picked from commit 31c6bf35b9d9de04158318658f4fbf6a9e54ff28)

src/conf/domain_audit.c

index 0f3924a47bb7fa5303a571ba4fca78ffe012b026..196521144b47abe7e4a292c2c552ff6ca9ef4ff4 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * domain_audit.c: Domain audit management
  *
- * Copyright (C) 2006-2012 Red Hat, Inc.
+ * Copyright (C) 2006-2013 Red Hat, Inc.
  * Copyright (C) 2006 Daniel P. Berrange
  *
  * This library is free software; you can redistribute it and/or
@@ -471,8 +471,8 @@ virDomainAuditCgroupPath(virDomainObjPtr vm, virCgroupPtr cgroup,
     rdev = virDomainAuditGetRdev(path);
 
     if (!(detail = virAuditEncode("path", path)) ||
-        virAsprintf(&extra, "path path=%s rdev=%s acl=%s",
-                    path, VIR_AUDIT_STR(rdev), perms) < 0) {
+        virAsprintf(&extra, "path %s rdev=%s acl=%s",
+                    detail, VIR_AUDIT_STR(rdev), perms) < 0) {
         VIR_WARN("OOM while encoding audit message");
         goto cleanup;
     }