]> xenbits.xensource.com Git - libvirt.git/commitdiff
conf: Audit TPM emulator device at domain startup
authorStefan Berger <stefanb@linux.vnet.ibm.com>
Thu, 24 May 2018 14:51:26 +0000 (10:51 -0400)
committerStefan Berger <stefanb@linux.vnet.ibm.com>
Wed, 6 Jun 2018 14:48:41 +0000 (10:48 -0400)
Extend the existing auditing with auditing for the TPM emulator.

Signed-off-by: Stefan Berger <stefanb@linux.vnet.ibm.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
docs/auditlog.html.in
src/conf/domain_audit.c

index 9b5ef548cd811661074fb2bedd72828a2d086c24..f8f0c99b235614446d32960171e40e42c762a6af 100644 (file)
       <dt><code>reason</code></dt>
       <dd>The reason which caused the resource to be assigned to happen</dd>
       <dt><code>resrc</code></dt>
-      <dd>The type of resource assigned. Set to <code>tpm</code></dd>
+      <dd>The type of resource assigned. Set to <code>tpm</code> or <code>tpm-emulator</code></dd>
       <dt><code>device</code></dt>
       <dd>The path of the host TPM device assigned to the guest</dd>
     </dl>
index b92779ce409acabc76deea251444db6ece5fd3e2..8335938c293897744b3a2835c1ed49cb7e5c620f 100644 (file)
@@ -555,12 +555,13 @@ virDomainAuditRedirdev(virDomainObjPtr vm, virDomainRedirdevDefPtr redirdev,
 
 /**
  * virDomainAuditTPM:
- * @vm: domain making a change in pass-through host device
+ * @vm: domain making a change in pass-through host device or emulator
  * @tpm: TPM device being attached or removed
  * @reason: one of "start", "attach", or "detach"
- * @success: true if the device passthrough operation succeeded
+ * @success: true if the device operation succeeded
  *
- * Log an audit message about an attempted device passthrough change.
+ * Log an audit message about an attempted device passthrough or emulator
+ * change.
  */
 static void
 virDomainAuditTPM(virDomainObjPtr vm, virDomainTPMDefPtr tpm,
@@ -596,6 +597,15 @@ virDomainAuditTPM(virDomainObjPtr vm, virDomainTPMDefPtr tpm,
                   virt, reason, vmname, uuidstr, device);
         break;
     case VIR_DOMAIN_TPM_TYPE_EMULATOR:
+        path = tpm->data.emulator.source.data.nix.path;
+        if (!(device = virAuditEncode("device", VIR_AUDIT_STR(path)))) {
+            VIR_WARN("OOM while encoding audit message");
+            goto cleanup;
+        }
+
+        VIR_AUDIT(VIR_AUDIT_RECORD_RESOURCE, success,
+                  "virt=%s resrc=tpm-emulator reason=%s %s uuid=%s %s",
+                  virt, reason, vmname, uuidstr, device);
         break;
     case VIR_DOMAIN_TPM_TYPE_LAST:
     default: