mirror of https://gitee.com/openkylin/libvirt.git
conf: do not steal pointers from the pool source
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
This commit is contained in:
parent
8ef12b96fa
commit
e9f9690958
|
@ -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"));
|
||||
|
|
|
@ -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>
|
|
@ -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");
|
||||
|
|
Loading…
Reference in New Issue