From nobody Mon May 6 15:08:24 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) client-ip=209.132.183.28; envelope-from=libvir-list-bounces@redhat.com; helo=mx1.redhat.com; Authentication-Results: mx.zohomail.com; spf=pass (zoho.com: domain of redhat.com designates 209.132.183.28 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=pass(p=none dis=none) header.from=redhat.com Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by mx.zohomail.com with SMTPS id 1532627961887391.9387076845543; Thu, 26 Jul 2018 10:59:21 -0700 (PDT) Received: from smtp.corp.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B66FF307C71B; Thu, 26 Jul 2018 17:59:19 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 1E21A3083332; Thu, 26 Jul 2018 17:59:19 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id 61D3C4A463; Thu, 26 Jul 2018 17:59:17 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx05.intmail.prod.int.rdu2.redhat.com [10.11.54.5]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id w6QHxF1R030517 for ; Thu, 26 Jul 2018 13:59:15 -0400 Received: by smtp.corp.redhat.com (Postfix) id 978471C5A2; Thu, 26 Jul 2018 17:59:15 +0000 (UTC) Received: from worklaptop.bos.redhat.com (dhcp-17-157.bos.redhat.com [10.18.17.157]) by smtp.corp.redhat.com (Postfix) with ESMTP id 7C83C7C4B; Thu, 26 Jul 2018 17:59:13 +0000 (UTC) From: Cole Robinson To: libvirt-list@redhat.com Date: Thu, 26 Jul 2018 13:59:12 -0400 Message-Id: <1e02bd9e528e85a5bc0ef564f63a50c1cd25bfde.1532627952.git.crobinso@redhat.com> X-Scanned-By: MIMEDefang 2.79 on 10.11.54.5 X-loop: libvir-list@redhat.com Subject: [libvirt] [PATCH] audit: Share virtType fallback logic X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.84 on 10.5.11.26 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.42]); Thu, 26 Jul 2018 17:59:20 +0000 (UTC) X-ZohoMail: RSF_0 Z_629925259 SPT_0 Content-Type: text/plain; charset="utf-8" Signed-off-by: Cole Robinson Reviewed-by: John Ferlan --- src/conf/domain_audit.c | 91 +++++++++++++---------------------------- 1 file changed, 28 insertions(+), 63 deletions(-) diff --git a/src/conf/domain_audit.c b/src/conf/domain_audit.c index d9be638f05..fc13338d64 100644 --- a/src/conf/domain_audit.c +++ b/src/conf/domain_audit.c @@ -68,6 +68,21 @@ virDomainAuditGetRdev(const char *path ATTRIBUTE_UNUSED) #endif =20 =20 +static const char * +virDomainAuditGetVirtType(virDomainDefPtr def) +{ + const char *virt; + + if (!(virt =3D virDomainVirtTypeToString(def->virtType))) { + VIR_WARN("Unexpected virt type %d while encoding audit message", + def->virtType); + virt =3D "?"; + } + + return virt; +} + + static void virDomainAuditGenericDev(virDomainObjPtr vm, const char *type, @@ -82,7 +97,7 @@ virDomainAuditGenericDev(virDomainObjPtr vm, char *vmname =3D NULL; char *oldsrc =3D NULL; char *newsrc =3D NULL; - const char *virt; + const char *virt =3D virDomainAuditGetVirtType(vm->def); =20 /* if both new and old source aren't provided don't log anything */ if (!newsrcpath && !oldsrcpath) @@ -99,12 +114,6 @@ virDomainAuditGenericDev(virDomainObjPtr vm, if (!(vmname =3D virAuditEncode("vm", vm->def->name))) goto no_memory; =20 - if (!(virt =3D virDomainVirtTypeToString(vm->def->virtType))) { - VIR_WARN("Unexpected virt type %d while encoding audit message", - vm->def->virtType); - virt =3D "?"; - } - if (!(newsrc =3D virAuditEncode(newdev, VIR_AUDIT_STR(newsrcpath)))) goto no_memory; =20 @@ -312,7 +321,7 @@ virDomainAuditNetDevice(virDomainDefPtr vmDef, virDomai= nNetDefPtr netDef, char *vmname; char *dev_name =3D NULL; char *rdev; - const char *virt; + const char *virt =3D virDomainAuditGetVirtType(vmDef); =20 virUUIDFormat(vmDef->uuid, uuidstr); virMacAddrFormat(&netDef->mac, macstr); @@ -324,11 +333,6 @@ virDomainAuditNetDevice(virDomainDefPtr vmDef, virDoma= inNetDefPtr netDef, goto cleanup; } =20 - if (!(virt =3D virDomainVirtTypeToString(vmDef->virtType))) { - VIR_WARN("Unexpected virt type %d while encoding audit message", v= mDef->virtType); - virt =3D "?"; - } - VIR_AUDIT(VIR_AUDIT_RECORD_RESOURCE, success, "virt=3D%s resrc=3Dnet reason=3Dopen %s uuid=3D%s net=3D%s %= s rdev=3D%s", virt, vmname, uuidstr, macstr, dev_name, VIR_AUDIT_STR(rdev)= ); @@ -356,7 +360,8 @@ virDomainAuditHostdev(virDomainObjPtr vm, virDomainHost= devDefPtr hostdev, char *vmname; char *address =3D NULL; char *device =3D NULL; - const char *virt; + const char *virt =3D virDomainAuditGetVirtType(vm->def); + virDomainHostdevSubsysUSBPtr usbsrc =3D &hostdev->source.subsys.u.usb; virDomainHostdevSubsysPCIPtr pcisrc =3D &hostdev->source.subsys.u.pci; virDomainHostdevSubsysSCSIPtr scsisrc =3D &hostdev->source.subsys.u.sc= si; @@ -369,11 +374,6 @@ virDomainAuditHostdev(virDomainObjPtr vm, virDomainHos= tdevDefPtr hostdev, return; } =20 - if (!(virt =3D virDomainVirtTypeToString(vm->def->virtType))) { - VIR_WARN("Unexpected virt type %d while encoding audit message", v= m->def->virtType); - virt =3D "?"; - } - switch ((virDomainHostdevMode) hostdev->mode) { case VIR_DOMAIN_HOSTDEV_MODE_SUBSYS: switch ((virDomainHostdevSubsysType) hostdev->source.subsys.type) { @@ -509,7 +509,7 @@ virDomainAuditRedirdev(virDomainObjPtr vm, virDomainRed= irdevDefPtr redirdev, char *vmname; char *address =3D NULL; char *device =3D NULL; - const char *virt; + const char *virt =3D virDomainAuditGetVirtType(vm->def); =20 virUUIDFormat(vm->def->uuid, uuidstr); if (!(vmname =3D virAuditEncode("vm", vm->def->name))) { @@ -517,11 +517,6 @@ virDomainAuditRedirdev(virDomainObjPtr vm, virDomainRe= dirdevDefPtr redirdev, return; } =20 - if (!(virt =3D virDomainVirtTypeToString(vm->def->virtType))) { - VIR_WARN("Unexpected virt type %d while encoding audit message", v= m->def->virtType); - virt =3D "?"; - } - switch (redirdev->bus) { case VIR_DOMAIN_REDIRDEV_BUS_USB: if (VIR_STRDUP_QUIET(address, "USB redirdev") < 0) { @@ -571,7 +566,7 @@ virDomainAuditTPM(virDomainObjPtr vm, virDomainTPMDefPt= r tpm, char *vmname; char *path =3D NULL; char *device =3D NULL; - const char *virt; + const char *virt =3D virDomainAuditGetVirtType(vm->def); =20 virUUIDFormat(vm->def->uuid, uuidstr); if (!(vmname =3D virAuditEncode("vm", vm->def->name))) { @@ -579,11 +574,6 @@ virDomainAuditTPM(virDomainObjPtr vm, virDomainTPMDefP= tr tpm, return; } =20 - if (!(virt =3D virDomainVirtTypeToString(vm->def->virtType))) { - VIR_WARN("Unexpected virt type %d while encoding audit message", v= m->def->virtType); - virt =3D "?"; - } - switch (tpm->type) { case VIR_DOMAIN_TPM_TYPE_PASSTHROUGH: path =3D tpm->data.passthrough.source.data.file.path; @@ -639,7 +629,7 @@ virDomainAuditCgroup(virDomainObjPtr vm, virCgroupPtr c= group, char *vmname; char *controller =3D NULL; char *detail; - const char *virt; + const char *virt =3D virDomainAuditGetVirtType(vm->def); =20 virUUIDFormat(vm->def->uuid, uuidstr); if (!(vmname =3D virAuditEncode("vm", vm->def->name))) { @@ -647,11 +637,6 @@ virDomainAuditCgroup(virDomainObjPtr vm, virCgroupPtr = cgroup, return; } =20 - if (!(virt =3D virDomainVirtTypeToString(vm->def->virtType))) { - VIR_WARN("Unexpected virt type %d while encoding audit message", v= m->def->virtType); - virt =3D "?"; - } - ignore_value(virCgroupPathOfController(cgroup, VIR_CGROUP_CONTROLLER_DEVICES, NULL, &controller)); @@ -757,7 +742,7 @@ virDomainAuditResource(virDomainObjPtr vm, const char *= resource, { char uuidstr[VIR_UUID_STRING_BUFLEN]; char *vmname; - const char *virt; + const char *virt =3D virDomainAuditGetVirtType(vm->def); =20 virUUIDFormat(vm->def->uuid, uuidstr); if (!(vmname =3D virAuditEncode("vm", vm->def->name))) { @@ -765,11 +750,6 @@ virDomainAuditResource(virDomainObjPtr vm, const char = *resource, return; } =20 - if (!(virt =3D virDomainVirtTypeToString(vm->def->virtType))) { - VIR_WARN("Unexpected virt type %d while encoding audit message", v= m->def->virtType); - virt =3D "?"; - } - VIR_AUDIT(VIR_AUDIT_RECORD_RESOURCE, success, "virt=3D%s resrc=3D%s reason=3D%s %s uuid=3D%s old-%s=3D%lld= new-%s=3D%lld", virt, resource, reason, vmname, uuidstr, @@ -809,7 +789,7 @@ virDomainAuditLifecycle(virDomainObjPtr vm, const char = *op, { char uuidstr[VIR_UUID_STRING_BUFLEN]; char *vmname; - const char *virt; + const char *virt =3D virDomainAuditGetVirtType(vm->def); =20 virUUIDFormat(vm->def->uuid, uuidstr); =20 @@ -818,11 +798,6 @@ virDomainAuditLifecycle(virDomainObjPtr vm, const char= *op, return; } =20 - if (!(virt =3D virDomainVirtTypeToString(vm->def->virtType))) { - VIR_WARN("Unexpected virt type %d while encoding audit message", v= m->def->virtType); - virt =3D "?"; - } - VIR_AUDIT(VIR_AUDIT_RECORD_MACHINE_CONTROL, success, "virt=3D%s op=3D%s reason=3D%s %s uuid=3D%s vm-pid=3D%lld", virt, op, reason, vmname, uuidstr, (long long)vm->pid); @@ -909,7 +884,7 @@ virDomainAuditInit(virDomainObjPtr vm, { char uuidstr[VIR_UUID_STRING_BUFLEN]; char *vmname; - const char *virt; + const char *virt =3D virDomainAuditGetVirtType(vm->def); =20 virUUIDFormat(vm->def->uuid, uuidstr); =20 @@ -918,11 +893,6 @@ virDomainAuditInit(virDomainObjPtr vm, return; } =20 - if (!(virt =3D virDomainVirtTypeToString(vm->def->virtType))) { - VIR_WARN("Unexpected virt type %d while encoding audit message", v= m->def->virtType); - virt =3D "?"; - } - VIR_AUDIT(VIR_AUDIT_RECORD_MACHINE_CONTROL, true, "virt=3D%s op=3Dinit %s uuid=3D%s vm-pid=3D%lld init-pid=3D%= lld pid-ns=3D%lld", virt, vmname, uuidstr, (long long)vm->pid, (long long)initpi= d, @@ -942,8 +912,8 @@ virDomainAuditSecurityLabel(virDomainObjPtr vm, bool su= ccess) { char uuidstr[VIR_UUID_STRING_BUFLEN]; char *vmname; - const char *virt; size_t i; + const char *virt =3D virDomainAuditGetVirtType(vm->def); =20 virUUIDFormat(vm->def->uuid, uuidstr); if (!(vmname =3D virAuditEncode("vm", vm->def->name))) { @@ -951,11 +921,6 @@ virDomainAuditSecurityLabel(virDomainObjPtr vm, bool s= uccess) return; } =20 - if (!(virt =3D virDomainVirtTypeToString(vm->def->virtType))) { - VIR_WARN("Unexpected virt type %d while encoding audit message", v= m->def->virtType); - virt =3D "?"; - } - for (i =3D 0; i < vm->def->nseclabels; i++) { VIR_AUDIT(VIR_AUDIT_RECORD_MACHINE_ID, success, "virt=3D%s %s uuid=3D%s vm-ctx=3D%s img-ctx=3D%s model= =3D%s", @@ -976,7 +941,7 @@ virDomainAuditShmem(virDomainObjPtr vm, char uuidstr[VIR_UUID_STRING_BUFLEN]; char *vmname =3D virAuditEncode("vm", vm->def->name); const char *srcpath =3D virDomainChrSourceDefGetPath(&def->server.chr); - const char *virt =3D virDomainVirtTypeToString(vm->def->virtType); + const char *virt =3D virDomainAuditGetVirtType(vm->def); char *shmpath =3D NULL; =20 virUUIDFormat(vm->def->uuid, uuidstr); @@ -1018,7 +983,7 @@ virDomainAuditInput(virDomainObjPtr vm, { char uuidstr[VIR_UUID_STRING_BUFLEN]; char *vmname; - const char *virt =3D virDomainVirtTypeToString(vm->def->virtType); + const char *virt =3D virDomainAuditGetVirtType(vm->def); =20 virUUIDFormat(vm->def->uuid, uuidstr); =20 --=20 2.17.1 -- libvir-list mailing list libvir-list@redhat.com https://www.redhat.com/mailman/listinfo/libvir-list