Since commit fcbbb28 we steal the pointer to the storage pool source name if there was no pool name specified. Properly duplicate the string to avoid freeing it twice. https://bugzilla.redhat.com/show_bug.cgi?id=1436400 --- src/conf/storage_conf.c | 5 +++-- tests/storagepoolxml2xmlout/pool-logical-noname.xml | 19 +++++++++++++++++++ tests/storagepoolxml2xmltest.c | 1 + 3 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 tests/storagepoolxml2xmlout/pool-logical-noname.xml diff --git a/src/conf/storage_conf.c b/src/conf/storage_conf.c index 585ca71..fe0f0bc 100644 --- a/src/conf/storage_conf.c +++ b/src/conf/storage_conf.c @@ -710,8 +710,9 @@ virStoragePoolDefParseXML(xmlXPathContextPtr ctxt) ret->name = virXPathString("string(./name)", ctxt); if (ret->name == NULL && - options->flags & VIR_STORAGE_POOL_SOURCE_NAME) - ret->name = ret->source.name; + options->flags & VIR_STORAGE_POOL_SOURCE_NAME && + VIR_STRDUP(ret->name, ret->source.name) < 0) + goto error; if (ret->name == NULL) { virReportError(VIR_ERR_XML_ERROR, "%s", _("missing pool source name element")); diff --git a/tests/storagepoolxml2xmlout/pool-logical-noname.xml b/tests/storagepoolxml2xmlout/pool-logical-noname.xml new file mode 100644 index 0000000..a5e0ead --- /dev/null +++ b/tests/storagepoolxml2xmlout/pool-logical-noname.xml @@ -0,0 +1,19 @@ +<pool type='logical'> + <name>zily</name> + <uuid>1c13165a-d0f4-3aee-b447-30fb38789091</uuid> + <capacity unit='bytes'>0</capacity> + <allocation unit='bytes'>0</allocation> + <available unit='bytes'>0</available> + <source> + <name>zily</name> + <format type='lvm2'/> + </source> + <target> + <path>/dev/zily</path> + <permissions> + <mode>0700</mode> + <owner>0</owner> + <group>0</group> + </permissions> + </target> +</pool> diff --git a/tests/storagepoolxml2xmltest.c b/tests/storagepoolxml2xmltest.c index 79bdc26..355871c 100644 --- a/tests/storagepoolxml2xmltest.c +++ b/tests/storagepoolxml2xmltest.c @@ -79,6 +79,7 @@ mymain(void) DO_TEST("pool-logical"); DO_TEST("pool-logical-nopath"); DO_TEST("pool-logical-create"); + DO_TEST("pool-logical-noname"); DO_TEST("pool-disk"); DO_TEST("pool-disk-device-nopartsep"); DO_TEST("pool-iscsi"); -- 2.10.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list