From: Jim Meyering Date: Tue, 18 May 2010 05:53:31 +0000 (+0200) Subject: initialize "meta" in virStorageFileGetMetadata, not in each caller X-Git-Tag: v0.8.2~238 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=dcf30d9c25daabe722c5298f0a90d562b7e9f7d7;p=thirdparty%2Flibvirt.git initialize "meta" in virStorageFileGetMetadata, not in each caller Do not require each caller of virStorageFileGetMetadata and virStorageFileGetMetadataFromFD to first clear the storage of the "meta" buffer. Instead, initialize that storage in virStorageFileGetMetadataFromFD. * src/util/storage_file.c (virStorageFileGetMetadataFromFD): Clear "meta" here, not before each of the following callers. * src/qemu/qemu_driver.c (qemuSetupDiskCgroup): Don't clear "meta" here. (qemuTeardownDiskCgroup): Likewise. * src/qemu/qemu_security_dac.c (qemuSecurityDACSetSecurityImageLabel): Likewise. * src/security/security_selinux.c (SELinuxSetSecurityImageLabel): Likewise. * src/security/virt-aa-helper.c (get_files): Likewise. --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 17d487f5ac..65ca1175e1 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -2982,8 +2982,6 @@ static int qemuSetupDiskCgroup(virCgroupPtr cgroup, } } - memset(&meta, 0, sizeof(meta)); - rc = virStorageFileGetMetadata(path, &meta); if (path != disk->src) @@ -3030,8 +3028,6 @@ static int qemuTeardownDiskCgroup(virCgroupPtr cgroup, } } - memset(&meta, 0, sizeof(meta)); - rc = virStorageFileGetMetadata(path, &meta); if (path != disk->src) @@ -9386,7 +9382,6 @@ static int qemuDomainGetBlockInfo(virDomainPtr dom, } /* Probe for magic formats */ - memset(&meta, 0, sizeof(meta)); if (virStorageFileGetMetadataFromFD(path, fd, &meta) < 0) goto cleanup; diff --git a/src/qemu/qemu_security_dac.c b/src/qemu/qemu_security_dac.c index a816441e84..52150f7bd4 100644 --- a/src/qemu/qemu_security_dac.c +++ b/src/qemu/qemu_security_dac.c @@ -115,8 +115,6 @@ qemuSecurityDACSetSecurityImageLabel(virDomainObjPtr vm ATTRIBUTE_UNUSED, virStorageFileMetadata meta; int ret; - memset(&meta, 0, sizeof(meta)); - ret = virStorageFileGetMetadata(path, &meta); if (path != disk->src) diff --git a/src/security/security_selinux.c b/src/security/security_selinux.c index 669ef421cc..d90e17c8e7 100644 --- a/src/security/security_selinux.c +++ b/src/security/security_selinux.c @@ -454,8 +454,6 @@ SELinuxSetSecurityImageLabel(virDomainObjPtr vm, virStorageFileMetadata meta; int ret; - memset(&meta, 0, sizeof(meta)); - ret = virStorageFileGetMetadata(path, &meta); if (path != disk->src) diff --git a/src/security/virt-aa-helper.c b/src/security/virt-aa-helper.c index 88cdc9da84..c66f1075c7 100644 --- a/src/security/virt-aa-helper.c +++ b/src/security/virt-aa-helper.c @@ -830,8 +830,6 @@ get_files(vahControl * ctl) do { virStorageFileMetadata meta; - memset(&meta, 0, sizeof(meta)); - ret = virStorageFileGetMetadata(path, &meta); if (path != ctl->def->disks[i]->src) diff --git a/src/util/storage_file.c b/src/util/storage_file.c index a07bedce4a..b3ae905fe5 100644 --- a/src/util/storage_file.c +++ b/src/util/storage_file.c @@ -275,6 +275,8 @@ virStorageFileGetMetadataFromFD(const char *path, unsigned char head[20*512]; /* vmdk4GetBackingStore needs this much. */ int len, i; + memset(meta, 0, sizeof (*meta)); + /* If all else fails, call it a raw file */ meta->format = VIR_STORAGE_FILE_RAW;