summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStéphane Graber <stgraber@stgraber.org>2025-07-29 10:32:25 -0400
committerGitHub <noreply@github.com>2025-07-29 10:32:25 -0400
commit523be85a228767cbe05ec15a1cb0f720f27b0ce3 (patch)
tree8c1bc556aae1be8774711217844406bb2792c3cd
parent49b75bb817d313e4bb1464c0dfd86f80770adf2c (diff)
parentb3a5d2814b3b25eb7d004fbb038bea3d8cf3e378 (diff)
Merge pull request #4567 from mihalicyn/various_fixes_jul2025HEADorigin/mainorigin/HEADmainfor-upstream
A bunch of fixes (Jul 2025)
-rw-r--r--src/lxc/conf.c2
-rw-r--r--src/lxc/network.c1
-rwxr-xr-xsrc/tests/lxc-test-rootfs17
-rwxr-xr-xsrc/tests/lxc-test-snapdeps1
4 files changed, 20 insertions, 1 deletions
diff --git a/src/lxc/conf.c b/src/lxc/conf.c
index 6c0e3d3c9..1899b2806 100644
--- a/src/lxc/conf.c
+++ b/src/lxc/conf.c
@@ -2682,11 +2682,11 @@ static int __lxc_idmapped_mounts_child(struct lxc_handler *handler, FILE *f)
ret = parse_lxc_mount_attrs(&opts, mntent.mnt_opts);
if (ret < 0)
return syserror("Failed to parse LXC specific mount options");
- __data = opts.data;
ret = parse_mount_attrs(&opts, mntent.mnt_opts);
if (ret < 0)
return syserror("Failed to parse mount options");
+ __data = opts.data;
/* No idmapped mount entry so skip it. */
if (is_empty_string(opts.userns_path))
diff --git a/src/lxc/network.c b/src/lxc/network.c
index f7d66eed2..79fa21d9d 100644
--- a/src/lxc/network.c
+++ b/src/lxc/network.c
@@ -4183,6 +4183,7 @@ int lxc_network_recv_name_and_ifindex_from_child(struct lxc_handler *handler)
ret = lxc_recv_nointr(data_sock, netdev->name, IFNAMSIZ, 0);
if (ret < 0)
return -1;
+ netdev->name[IFNAMSIZ-1] = '\0';
/* Receive network device ifindex in the child's namespace to
* parent.
diff --git a/src/tests/lxc-test-rootfs b/src/tests/lxc-test-rootfs
index 9deaf18a4..bd9bb069e 100755
--- a/src/tests/lxc-test-rootfs
+++ b/src/tests/lxc-test-rootfs
@@ -9,6 +9,7 @@ set -ex
cleanup() {
set +e
lxc-destroy -n lxc-test-rootfs -f
+ sed -i '/^root:910000:10000/d' /etc/subuid /etc/subgid
if [ $PHASE != "done" ]; then
echo "rootfs test failed at $PHASE"
exit 1
@@ -48,4 +49,20 @@ mkdir /proc/$pid/root/rwtest || ro=1
rmdir /proc/$pid/root/rwtest
ro=0
+lxc-stop -n lxc-test-rootfs -k
+PHASE=idmapped_rootfs
+echo "Starting phase $PHASE"
+usermod -v 910000-919999 -w 910000-919999 root
+sed -i '/lxc.rootfs.options/d' $config
+echo "lxc.idmap = u 0 910000 9999" >> $config
+echo "lxc.idmap = g 0 910000 9999" >> $config
+echo "lxc.rootfs.options = idmap=container" >> $config
+lxc-start -n lxc-test-rootfs
+pid=$(lxc-info -n lxc-test-rootfs -p -H)
+ro=0
+lxc-attach -n lxc-test-rootfs -- mkdir /rwtest || ro=1
+[ $ro -ne 1 ]
+rmdir /proc/$pid/root/rwtest
+ro=0
+
PHASE=done
diff --git a/src/tests/lxc-test-snapdeps b/src/tests/lxc-test-snapdeps
index 5e6ea998c..3219b6815 100755
--- a/src/tests/lxc-test-snapdeps
+++ b/src/tests/lxc-test-snapdeps
@@ -14,6 +14,7 @@
set -e
+modprobe -v overlay || true
if ! grep -q overlay /proc/filesystems; then
echo "Not running this test as overlay is not available"
exit 0