On Thu, Sep 07, 2023 at 09:11:34 +0200, Martin Kletzander wrote:
On Wed, Sep 06, 2023 at 06:34:42PM +0300, Dmitry Frolov wrote:
> Reviewing the sources, I found, that
> in function lxcContainerMountAllFS() pointers
> vmDef->fss[i]->src and vmDef->fss[i]->src->path
> are checked for NULL after dereferencing in
> VIR_DEBUG() macro.
>
> Fixes: 57487085dc ("lxc: don't try to reference NULL when mounting
filesystems")
> ---
> src/lxc/lxc_container.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
[...]
> if (lxcContainerResolveSymlinks(vmDef->fss[i], false)
< 0)
> return -1;
>
> - if (!(vmDef->fss[i]->src && vmDef->fss[i]->src->path
&&
> - STRPREFIX(vmDef->fss[i]->src->path,
vmDef->fss[i]->dst)) &&
> + if (!STRPREFIX(vmDef->fss[i]->src->path, vmDef->fss[i]->dst)
&&
> lxcContainerUnmountSubtree(vmDef->fss[i]->dst, false) < 0)
... here it only skips the unmount in such case. That makes sense
because for example tmpfs does not have a source path, only the
destination and the mount that is not visible in the context here would
not only be skipped as well, but the whole starting of a domain would
fail.
Instead of this patch, you could just conditionally change the
VIR_DEBUG() to report what's actually happening.
And we have a handy NULLSTR() macro for that case.
> return -1;
>
> --
> 2.34.1
>