[libvirt] [PATCH 3/6] conf: audit: Split out common steps to audit domain devices
Ján Tomko
jtomko at redhat.com
Thu Jul 3 13:29:35 UTC 2014
On 07/03/2014 12:04 PM, Peter Krempa wrote:
> Extract common operations done when creating an audit message to a
> separate generic function that can be reused and convert RNG, disk, FS
> and net audit to use it.
> ---
> src/conf/domain_audit.c | 175 ++++++++++++++++--------------------------------
> 1 file changed, 57 insertions(+), 118 deletions(-)
>
> diff --git a/src/conf/domain_audit.c b/src/conf/domain_audit.c
> index 91095b1..4c4290c 100644
> --- a/src/conf/domain_audit.c
> +++ b/src/conf/domain_audit.c
> @@ -93,46 +93,73 @@ virDomainAuditChardevPath(virDomainChrSourceDefPtr chr)
> }
>
>
> -void
> -virDomainAuditDisk(virDomainObjPtr vm,
> - const char *oldDef, const char *newDef,
> - const char *reason, bool success)
> +static void
> +virDomainAuditGenericDev(virDomainObjPtr vm,
> + const char *type,
> + const char *oldsrcpath,
> + const char *newsrcpath,
> + const char *reason,
> + bool success)
> {
> + char *newdev = NULL;
> + char *olddev = NULL;
> char uuidstr[VIR_UUID_STRING_BUFLEN];
> char *vmname;
vmname can be used unitialized in the cleanup section on OOM
> char *oldsrc = NULL;
> char *newsrc = NULL;
> const char *virt;
>
> - virUUIDFormat(vm->def->uuid, uuidstr);
> - if (!(vmname = virAuditEncode("vm", vm->def->name))) {
> - VIR_WARN("OOM while encoding audit message");
> + /* if both new and old source aren't provided don't log anything */
> + if (!newsrcpath && !oldsrcpath)
Please move this to the next commit and let this one be just code movement.
> return;
> - }
> +
> + if (virAsprintfQuiet(&newdev, "new-%s", type) < 0)
> + goto no_memory;
> +
> + if (virAsprintfQuiet(&olddev, "old-%s", type) < 0)
> + goto no_memory;
> +
> + virUUIDFormat(vm->def->uuid, uuidstr);
> +
> + if (!(vmname = virAuditEncode("vm", vm->def->name)))
> + goto no_memory;
>
> if (!(virt = virDomainVirtTypeToString(vm->def->virtType))) {
> - VIR_WARN("Unexpected virt type %d while encoding audit message", vm->def->virtType);
> + VIR_WARN("Unexpected virt type %d while encoding audit message",
> + vm->def->virtType);
> virt = "?";
> }
>
> @@ -274,34 +228,19 @@ virDomainAuditNet(virDomainObjPtr vm,
> virDomainNetDefPtr oldDef, virDomainNetDefPtr newDef,
> const char *reason, bool success)
> {
> -
> - VIR_AUDIT(VIR_AUDIT_RECORD_RESOURCE, success,
> - "virt=%s resrc=net reason=%s %s uuid=%s old-net=%s new-net=%s",
> - virt, reason, vmname, uuidstr,
> - oldDef ? oldMacstr : "?",
> - newDef ? newMacstr : "?");
> -
> - VIR_FREE(vmname);
> + virDomainAuditGenericDev(vm, "fs",
The resrc should be "net" here, not "fs".
> + oldDef ? oldMacstr : NULL,
> + newDef ? newMacstr : NULL,
> + reason, success);
> }
>
> /**
>
ACK with the nits fixed.
Jan
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 836 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140703/354933fd/attachment-0001.sig>
More information about the libvir-list
mailing list