vmDef->fss[i]->src->path may be NULL,
so check is needed before passing it to VIR_DEBUG.
Also removed checking vmDef->fss[i]->src for NULL, since it may not be NULL.
Fixes: 57487085dc ("lxc: don't try to reference NULL when mounting filesystems")
Signed-off-by: Dmitry Frolov <frolov@swemel.ru>
---
src/lxc/lxc_container.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
index 21220661f7..9601061b23 100644
--- a/src/lxc/lxc_container.c
+++ b/src/lxc/lxc_container.c
@@ -1467,12 +1467,12 @@ static int lxcContainerMountAllFS(virDomainDef *vmDef,
if (STREQ(vmDef->fss[i]->dst, "/"))
continue;
- VIR_DEBUG("Mounting '%s' -> '%s'", vmDef->fss[i]->src->path, vmDef->fss[i]->dst);
+ VIR_DEBUG("Mounting '%s' -> '%s'", NULLSTR(vmDef->fss[i]->src->path), vmDef->fss[i]->dst);
if (lxcContainerResolveSymlinks(vmDef->fss[i], false) < 0)
return -1;
- if (!(vmDef->fss[i]->src && vmDef->fss[i]->src->path &&
+ if (!(vmDef->fss[i]->src->path &&
STRPREFIX(vmDef->fss[i]->src->path, vmDef->fss[i]->dst)) &&
lxcContainerUnmountSubtree(vmDef->fss[i]->dst, false) < 0)
return -1;
--
2.34.1
On 9/7/23 11:04, Dmitry Frolov wrote: > vmDef->fss[i]->src->path may be NULL, > so check is needed before passing it to VIR_DEBUG. > Also removed checking vmDef->fss[i]->src for NULL, since it may not be NULL. > > Fixes: 57487085dc ("lxc: don't try to reference NULL when mounting filesystems") > > Signed-off-by: Dmitry Frolov <frolov@swemel.ru> > --- > src/lxc/lxc_container.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c > index 21220661f7..9601061b23 100644 > --- a/src/lxc/lxc_container.c > +++ b/src/lxc/lxc_container.c > @@ -1467,12 +1467,12 @@ static int lxcContainerMountAllFS(virDomainDef *vmDef, > if (STREQ(vmDef->fss[i]->dst, "/")) > continue; > > - VIR_DEBUG("Mounting '%s' -> '%s'", vmDef->fss[i]->src->path, vmDef->fss[i]->dst); > + VIR_DEBUG("Mounting '%s' -> '%s'", NULLSTR(vmDef->fss[i]->src->path), vmDef->fss[i]->dst); Nitpick, this is long enough line that can be easily broken into two. > > if (lxcContainerResolveSymlinks(vmDef->fss[i], false) < 0) > return -1; > > - if (!(vmDef->fss[i]->src && vmDef->fss[i]->src->path && > + if (!(vmDef->fss[i]->src->path && > STRPREFIX(vmDef->fss[i]->src->path, vmDef->fss[i]->dst)) && > lxcContainerUnmountSubtree(vmDef->fss[i]->dst, false) < 0) > return -1; Reviewed-by: Michal Privoznik <mprivozn@redhat.com> and pushed. Michal
ping.
-------- Перенаправленное сообщение --------
Тема: [PATCH v2] lxc: fix lxcContainerMountAllFS() DEREF_BEFORE_CHECK
Дата: Thu, 7 Sep 2023 12:04:57 +0300
От: Dmitry Frolov <frolov@swemel.ru>
Кому: libvir-list@redhat.com
Копия: Dmitry Frolov <frolov@swemel.ru>
vmDef->fss[i]->src->path may be NULL,
so check is needed before passing it to VIR_DEBUG.
Also removed checking vmDef->fss[i]->src for NULL, since it may not be NULL.
Fixes: 57487085dc ("lxc: don't try to reference NULL when mounting
filesystems")
Signed-off-by: Dmitry Frolov <frolov@swemel.ru>
---
src/lxc/lxc_container.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/lxc/lxc_container.c b/src/lxc/lxc_container.c
index 21220661f7..9601061b23 100644
--- a/src/lxc/lxc_container.c
+++ b/src/lxc/lxc_container.c
@@ -1467,12 +1467,12 @@ static int lxcContainerMountAllFS(virDomainDef
*vmDef,
if (STREQ(vmDef->fss[i]->dst, "/"))
continue;
- VIR_DEBUG("Mounting '%s' -> '%s'", vmDef->fss[i]->src->path,
vmDef->fss[i]->dst);
+ VIR_DEBUG("Mounting '%s' -> '%s'", NULLSTR(vmDef->fss[i]->src->path),
vmDef->fss[i]->dst);
if (lxcContainerResolveSymlinks(vmDef->fss[i], false) < 0)
return -1;
- if (!(vmDef->fss[i]->src && vmDef->fss[i]->src->path &&
+ if (!(vmDef->fss[i]->src->path &&
STRPREFIX(vmDef->fss[i]->src->path, vmDef->fss[i]->dst)) &&
lxcContainerUnmountSubtree(vmDef->fss[i]->dst, false) < 0)
return -1;
--
2.34.1
© 2016 - 2024 Red Hat, Inc.