[libvirt] [PATCH] lxc: don't try to resolve a NULL path for filesystems

<filesystem type='ram' accessmode='passthrough'> <source usage='524288' units='KiB'/> <target dir='/dev/shm'/> </filesystem> would lead to lxcContainerResolveSymlinks calling access(NULL) because it failed to check if fs->src->path was non-NULL. This is a regression caused by commit da665fbd4858890fbb3bbf5da2a7b6ca37bb3220 Author: Olga Krishtal <okrishtal@virtuozzo.com> Date: Thu Jul 14 16:52:38 2016 +0300 filesystem: adds possibility to use storage pool as fs source Signed-off-by: Olga Krishtal <okrishtal@virtuozzo.com> Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- src/lxc/lxc_container.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index 124b441..e1eb434 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -616,7 +616,7 @@ static int lxcContainerResolveSymlinks(virDomainFSDefPtr fs, bool gentle) { char *newroot; - if (!fs->src || fs->symlinksResolved) + if (!fs->src || !fs->src->path || fs->symlinksResolved) return 0; if (access(fs->src->path, F_OK)) { -- 2.7.4

On 08/11/2016 09:09 AM, Daniel P. Berrange wrote:
<filesystem type='ram' accessmode='passthrough'> <source usage='524288' units='KiB'/> <target dir='/dev/shm'/> </filesystem>
would lead to lxcContainerResolveSymlinks calling access(NULL) because it failed to check if fs->src->path was non-NULL. This is a regression caused by
commit da665fbd4858890fbb3bbf5da2a7b6ca37bb3220 Author: Olga Krishtal <okrishtal@virtuozzo.com> Date: Thu Jul 14 16:52:38 2016 +0300
filesystem: adds possibility to use storage pool as fs source
Signed-off-by: Olga Krishtal <okrishtal@virtuozzo.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com> --- src/lxc/lxc_container.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c index 124b441..e1eb434 100644 --- a/src/lxc/lxc_container.c +++ b/src/lxc/lxc_container.c @@ -616,7 +616,7 @@ static int lxcContainerResolveSymlinks(virDomainFSDefPtr fs, bool gentle) { char *newroot;
- if (!fs->src || fs->symlinksResolved) + if (!fs->src || !fs->src->path || fs->symlinksResolved) return 0;
if (access(fs->src->path, F_OK)) {
ACK - Cole
participants (2)
-
Cole Robinson
-
Daniel P. Berrange