On 07/03/14 15:29, Ján Tomko wrote:
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.
That condition is also necessary for this patch as auditing with both
new and old definition missing doesn't make sense. Some of the other
refactored functions rely on that.
Peter