提交 738dc3f4 编写于 作者: J Ján Tomko

conf: storage: also sanitize source dir

Commit a7fb2258 added sanitization of storage pool target paths,
however source dir paths were left unsanitized.

A netfs pool with:
<source>
  <host name='10.20.30.40'/>
  <dir path='/nfs/'/>
</source>
will not be correctly detected as mounted by
virStorageBackendFileSystemIsMounted, because it shows up in the
mount list without the trailing slash.

Sanitize the source dir as well.

https://bugzilla.redhat.com/show_bug.cgi?id=1723247Signed-off-by: NJán Tomko <jtomko@redhat.com>
Acked-by: NPeter Krempa <pkrempa@redhat.com>
上级 4fc84496
...@@ -533,6 +533,7 @@ virStoragePoolDefParseSource(xmlXPathContextPtr ctxt, ...@@ -533,6 +533,7 @@ virStoragePoolDefParseSource(xmlXPathContextPtr ctxt,
VIR_AUTOFREE(char *) port = NULL; VIR_AUTOFREE(char *) port = NULL;
VIR_AUTOFREE(char *) ver = NULL; VIR_AUTOFREE(char *) ver = NULL;
VIR_AUTOFREE(xmlNodePtr *) nodeset = NULL; VIR_AUTOFREE(xmlNodePtr *) nodeset = NULL;
VIR_AUTOFREE(char *) sourcedir = NULL;
relnode = ctxt->node; relnode = ctxt->node;
ctxt->node = node; ctxt->node = node;
...@@ -630,7 +631,9 @@ virStoragePoolDefParseSource(xmlXPathContextPtr ctxt, ...@@ -630,7 +631,9 @@ virStoragePoolDefParseSource(xmlXPathContextPtr ctxt,
} }
source->dir = virXPathString("string(./dir/@path)", ctxt); sourcedir = virXPathString("string(./dir/@path)", ctxt);
if (sourcedir)
source->dir = virFileSanitizePath(sourcedir);
/* In gluster, a missing dir defaults to "/" */ /* In gluster, a missing dir defaults to "/" */
if (!source->dir && pool_type == VIR_STORAGE_POOL_GLUSTER && if (!source->dir && pool_type == VIR_STORAGE_POOL_GLUSTER &&
VIR_STRDUP(source->dir, "/") < 0) VIR_STRDUP(source->dir, "/") < 0)
......
<pool type='netfs'>
<name>nfsimages</name>
<uuid>7641d5a8-af11-f730-a34e-0a7dfcede71f</uuid>
<capacity>0</capacity>
<allocation>0</allocation>
<available>0</available>
<source>
<host name='localhost'/>
<dir path='/var/lib/libvirt/images/'/>
<format type='nfs'/>
</source>
<target>
<path>/mnt</path>
<permissions>
<mode>0700</mode>
<owner>0</owner>
<group>0</group>
</permissions>
</target>
</pool>
<pool type='netfs'>
<name>nfsimages</name>
<uuid>7641d5a8-af11-f730-a34e-0a7dfcede71f</uuid>
<capacity unit='bytes'>0</capacity>
<allocation unit='bytes'>0</allocation>
<available unit='bytes'>0</available>
<source>
<host name='localhost'/>
<dir path='/var/lib/libvirt/images'/>
<format type='nfs'/>
</source>
<target>
<path>/mnt</path>
<permissions>
<mode>0700</mode>
<owner>0</owner>
<group>0</group>
</permissions>
</target>
</pool>
...@@ -73,6 +73,7 @@ mymain(void) ...@@ -73,6 +73,7 @@ mymain(void)
DO_TEST("pool-iscsi"); DO_TEST("pool-iscsi");
DO_TEST("pool-iscsi-auth"); DO_TEST("pool-iscsi-auth");
DO_TEST("pool-netfs"); DO_TEST("pool-netfs");
DO_TEST("pool-netfs-slash");
DO_TEST("pool-netfs-auto"); DO_TEST("pool-netfs-auto");
DO_TEST("pool-netfs-protocol-ver"); DO_TEST("pool-netfs-protocol-ver");
DO_TEST("pool-netfs-gluster"); DO_TEST("pool-netfs-gluster");
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册