By default lxc-attach will try to find the user's shell via
getpwuid_r(), and if this fails will run `getent passwd
$uid`.

The first part is problematic in that it may try to
dynamically load additional libraries at runtime, and,
glibc/libnss in buster seem to be buggy in a way that causes
a segfault instead of properly returning an error.

For now, work around this by forcing the execution of
/bin/sh instead.

Signed-off-by: Wolfgang Bumiller <w.bumil...@proxmox.com>
---
Also make the exec call more explicitly not spawn another shell...

 src/PVE/CLI/pct.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/PVE/CLI/pct.pm b/src/PVE/CLI/pct.pm
index 8807633..5303670 100755
--- a/src/PVE/CLI/pct.pm
+++ b/src/PVE/CLI/pct.pm
@@ -161,7 +161,7 @@ __PACKAGE__->register_method ({
 
        die "Error: container '$vmid' not running!\n" if 
!PVE::LXC::check_running($vmid);
 
-       exec('lxc-attach', '-n',  $vmid);
+       exec {'lxc-attach'} 'lxc-attach', '-n',  $vmid, '--', '/bin/sh';
     }});
 
 __PACKAGE__->register_method ({
-- 
2.20.1


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to