From ff454a452fc1097d7baffea3567f89e47991aa04 Mon Sep 17 00:00:00 2001 From: Bill Nottingham Date: Fri, 19 May 2017 16:51:39 -0400 Subject: [PATCH] Perform realpath() on paths passed to bubblewrap to avoid errors with symlinks bubblewrap is creating a mount tree from a namespace outside the one it's creating. Absolute symlinks will not resolve properly, causing errors. Filed @ https://github.com/projectatomic/bubblewrap/issues/195, but this should work around it without side effects. --- awx/main/utils/common.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/awx/main/utils/common.py b/awx/main/utils/common.py index b56c954f9c..fe9fa3e2b7 100644 --- a/awx/main/utils/common.py +++ b/awx/main/utils/common.py @@ -702,6 +702,7 @@ def wrap_args_with_proot(args, cwd, **kwargs): for path in sorted(set(hide_paths)): if not os.path.exists(path): continue + path = os.path.realpath(path) if os.path.isdir(path): new_path = tempfile.mkdtemp(dir=kwargs['proot_temp_dir']) os.chmod(new_path, stat.S_IRUSR | stat.S_IWUSR | stat.S_IXUSR) @@ -722,6 +723,7 @@ def wrap_args_with_proot(args, cwd, **kwargs): for path in sorted(set(show_paths)): if not os.path.exists(path): continue + path = os.path.realpath(path) new_args.extend(['--bind', '%s' % (path,), '%s' % (path,)]) new_args.extend(['--chdir', cwd]) new_args.extend(args)