[libvirt] [PATCH 2/7] security: Use virDomainSeclabelDefClear
Daniel P. Berrange
berrange at redhat.com
Thu Jan 13 17:15:29 UTC 2011
On Wed, Jan 12, 2011 at 12:22:58PM -0500, Cole Robinson wrote:
> Renamed from virSecurityLabelDefFree.
>
> Signed-off-by: Cole Robinson <crobinso at redhat.com>
> ---
> cfg.mk | 1 +
> src/conf/domain_conf.c | 17 +++++++++--------
> src/conf/domain_conf.h | 1 +
> src/libvirt_private.syms | 2 +-
> src/qemu/qemu_driver.c | 4 +---
> src/security/security_apparmor.c | 11 ++---------
> src/security/security_selinux.c | 9 ++-------
> 7 files changed, 17 insertions(+), 28 deletions(-)
>
> diff --git a/cfg.mk b/cfg.mk
> index 03186b3..2c6f595 100644
> --- a/cfg.mk
> +++ b/cfg.mk
> @@ -98,6 +98,7 @@ useless_free_options = \
> --name=virDomainInputDefFree \
> --name=virDomainNetDefFree \
> --name=virDomainObjFree \
> + --name=virDomainSeclabelDefClear \
This isn't needed
> --name=virDomainSnapshotDefFree \
> --name=virDomainSnapshotObjFree \
> --name=virDomainSoundDefFree \
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index b4df38c..8f6ef55 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -754,13 +754,14 @@ void virDomainDeviceDefFree(virDomainDeviceDefPtr def)
> VIR_FREE(def);
> }
>
> -void virSecurityLabelDefFree(virDomainDefPtr def);
> -
> -void virSecurityLabelDefFree(virDomainDefPtr def)
> +void virDomainSeclabelDefClear(virSecurityLabelDefPtr seclabel)
> {
> - VIR_FREE(def->seclabel.model);
> - VIR_FREE(def->seclabel.label);
> - VIR_FREE(def->seclabel.imagelabel);
> + if (!seclabel)
> + return;
Nor is this.
> + VIR_FREE(seclabel->model);
> + VIR_FREE(seclabel->label);
> + VIR_FREE(seclabel->imagelabel);
> }
>
> static void
> @@ -855,7 +856,7 @@ void virDomainDefFree(virDomainDefPtr def)
>
> virDomainMemballoonDefFree(def->memballoon);
>
> - virSecurityLabelDefFree(def);
> + virDomainSeclabelDefClear(&def->seclabel);
>
> virCPUDefFree(def->cpu);
>
> @@ -4272,7 +4273,7 @@ virSecurityLabelDefParseXML(const virDomainDefPtr def,
> return 0;
>
> error:
> - virSecurityLabelDefFree(def);
> + virDomainSeclabelDefClear(&def->seclabel);
> return -1;
> }
>
> diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
> index a459a22..b5cf433 100644
> --- a/src/conf/domain_conf.h
> +++ b/src/conf/domain_conf.h
> @@ -1082,6 +1082,7 @@ void virDomainWatchdogDefFree(virDomainWatchdogDefPtr def);
> void virDomainVideoDefFree(virDomainVideoDefPtr def);
> void virDomainHostdevDefFree(virDomainHostdevDefPtr def);
> void virDomainDeviceDefFree(virDomainDeviceDefPtr def);
> +void virDomainSeclabelDefClear(virSecurityLabelDefPtr seclabel);
> int virDomainDeviceAddressIsValid(virDomainDeviceInfoPtr info,
> int type);
> int virDomainDevicePCIAddressIsValid(virDomainDevicePCIAddressPtr addr);
> diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
> index e9b8cb7..191ae6a 100644
> --- a/src/libvirt_private.syms
> +++ b/src/libvirt_private.syms
> @@ -279,6 +279,7 @@ virDomainRemoveInactive;
> virDomainSaveConfig;
> virDomainSaveStatus;
> virDomainSaveXML;
> +virDomainSeclabelDefClear;
> virDomainSnapshotAssignDef;
> virDomainSnapshotDefFormat;
> virDomainSnapshotDefFree;
> @@ -313,7 +314,6 @@ virDomainWatchdogActionTypeToString;
> virDomainWatchdogModelTypeFromString;
> virDomainWatchdogModelTypeToString;
>
> -
> # domain_event.h
> virDomainEventCallbackListAdd;
> virDomainEventCallbackListAddID;
> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
> index 9eb9cd5..3745cce 100644
> --- a/src/qemu/qemu_driver.c
> +++ b/src/qemu/qemu_driver.c
> @@ -3043,9 +3043,7 @@ static void qemudShutdownVMDaemon(struct qemud_driver *driver,
>
> /* Clear out dynamically assigned labels */
> if (vm->def->seclabel.type == VIR_DOMAIN_SECLABEL_DYNAMIC) {
> - VIR_FREE(vm->def->seclabel.model);
> - VIR_FREE(vm->def->seclabel.label);
> - VIR_FREE(vm->def->seclabel.imagelabel);
> + virDomainSeclabelDefClear(&vm->def->seclabel);
> }
>
> virDomainDefClearDeviceAliases(vm->def);
> diff --git a/src/security/security_apparmor.c b/src/security/security_apparmor.c
> index d82ba73..42f812c 100644
> --- a/src/security/security_apparmor.c
> +++ b/src/security/security_apparmor.c
> @@ -475,9 +475,7 @@ AppArmorGenSecurityLabel(virSecurityManagerPtr mgr ATTRIBUTE_UNUSED,
> goto clean;
>
> err:
> - VIR_FREE(vm->def->seclabel.label);
> - VIR_FREE(vm->def->seclabel.imagelabel);
> - VIR_FREE(vm->def->seclabel.model);
> + virDomainSeclabelDefClear(&vm->def->seclabel);
>
> clean:
> VIR_FREE(profile_name);
> @@ -547,12 +545,7 @@ static int
> AppArmorReleaseSecurityLabel(virSecurityManagerPtr mgr ATTRIBUTE_UNUSED,
> virDomainObjPtr vm)
> {
> - const virSecurityLabelDefPtr secdef = &vm->def->seclabel;
> -
> - VIR_FREE(secdef->model);
> - VIR_FREE(secdef->label);
> - VIR_FREE(secdef->imagelabel);
> -
> + virDomainSeclabelDefClear(&vm->def->seclabel);
> return 0;
> }
>
> diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c
> index d06afde..f11e209 100644
> --- a/src/security/security_selinux.c
> +++ b/src/security/security_selinux.c
> @@ -216,9 +216,7 @@ SELinuxGenSecurityLabel(virSecurityManagerPtr mgr ATTRIBUTE_UNUSED,
> rc = 0;
> goto done;
> err:
> - VIR_FREE(vm->def->seclabel.label);
> - VIR_FREE(vm->def->seclabel.imagelabel);
> - VIR_FREE(vm->def->seclabel.model);
> + virDomainSeclabelDefClear(&vm->def->seclabel);
> done:
> VIR_FREE(scontext);
> return rc;
> @@ -830,10 +828,7 @@ SELinuxReleaseSecurityLabel(virSecurityManagerPtr mgr ATTRIBUTE_UNUSED,
> context_free(con);
> }
>
> - VIR_FREE(secdef->model);
> - VIR_FREE(secdef->label);
> - VIR_FREE(secdef->imagelabel);
> -
> + virDomainSeclabelDefClear(secdef);
> return 0;
> }
>
ACK to the rest of the patch
Daniel
More information about the libvir-list
mailing list