]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
lxc/network: handle non-existing sysctl <ifname>/disable_ipv6
authorAlexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Mon, 8 Apr 2024 10:21:21 +0000 (12:21 +0200)
committerAlexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
Mon, 8 Apr 2024 10:21:21 +0000 (12:21 +0200)
Skip writting to /proc/sys/net/ipv6/conf/<ifname>/disable_ipv6
if it does not exist.

Fixes: #4431
Signed-off-by: Alexander Mikhalitsyn <aleksandr.mikhalitsyn@canonical.com>
src/lxc/network.c

index 09666a76cb9654ad2c5861a23cc62a148850836d..2a6ba6cb44e3cf869643c1416f374e29f96863c7 100644 (file)
@@ -722,15 +722,15 @@ static int netdev_configure_server_veth(struct lxc_handler *handler, struct lxc_
                if (disable_ipv6_fd < 0 && errno != ENOENT) {
                        SYSERROR("Failed to disable IPv6 link-local addresses for veth pair \"%s\"", veth1);
                        goto out_delete;
+               } else if (disable_ipv6_fd >= 0) {
+                       err = write(disable_ipv6_fd, "1", 1);
+                       if (err < 0) {
+                               SYSERROR("Failed to disable IPv6 link-local addresses for veth pair \"%s\"", veth1);
+                               goto out_delete;
+                       }
+                       close(disable_ipv6_fd);
                }
 
-               err = write(disable_ipv6_fd, "1", 1);
-               if (err < 0) {
-                       SYSERROR("Failed to disable IPv6 link-local addresses for veth pair \"%s\"", veth1);
-                       goto out_delete;
-               }
-               close(disable_ipv6_fd);
-
                if (!lxc_nic_exists(netdev->link)) {
                        SYSERROR("Failed to attach \"%s\" to bridge \"%s\", bridge interface doesn't exist", veth1, netdev->link);
                        goto out_delete;