diff options
author | Stéphane Graber <stgraber@stgraber.org> | 2025-07-29 10:32:25 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-07-29 10:32:25 -0400 |
commit | 523be85a228767cbe05ec15a1cb0f720f27b0ce3 (patch) | |
tree | 8c1bc556aae1be8774711217844406bb2792c3cd | |
parent | 49b75bb817d313e4bb1464c0dfd86f80770adf2c (diff) | |
parent | b3a5d2814b3b25eb7d004fbb038bea3d8cf3e378 (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.c | 2 | ||||
-rw-r--r-- | src/lxc/network.c | 1 | ||||
-rwxr-xr-x | src/tests/lxc-test-rootfs | 17 | ||||
-rwxr-xr-x | src/tests/lxc-test-snapdeps | 1 |
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 |