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
(cherry picked from commit e9f9690958)
This commit is contained in:
Ján Tomko 2017-03-28 15:11:52 +02:00 committed by Cole Robinson
parent 987213ac7d
commit 47fa3d3992
3 changed files with 23 additions and 2 deletions

View File

@ -845,8 +845,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"));

View File

@ -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>

View File

@ -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");