[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#780237: marked as done (unblock: ifupdown/0.7.53)



Your message dated Fri, 13 Mar 2015 22:16:24 +0100
with message-id <550353A8.8090407@thykier.net>
and subject line Re: Bug#780237: unblock: ifupdown/0.7.53
has caused the Debian Bug report #780237,
regarding unblock: ifupdown/0.7.53
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact owner@bugs.debian.org
immediately.)


-- 
780237: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=780237
Debian Bug Tracking System
Contact owner@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian.org@packages.debian.org
Usertags: unblock

Please unblock package ifupdown

I've got a bug, #775660, in ifupdown which I think should be fixed in Jessie.

I'm not sure how many our users does it affect, but I agree with Marco
it's good to fix it.

Patch: http://anonscm.debian.org/hg/collab-maint/ifupdown/rev/adfae04d9df8

Also, one of the last uploads introduced an incorrect warning appearing
on every Jessie install (but not in any release before) caused by
incorrect handling of wordexp's return values: * pattern expands into *
when there are not matches, not in an empty list, so a warning is
printed for every ifupdown invocation, as the default config includes
all files matching /etc/network/interfaces.d/*, and there are none of
them. The fix for this is 5 lines of code not counting includes, so it's
pretty trivial and I think it should be included.

Patch: http://anonscm.debian.org/hg/collab-maint/ifupdown/rev/79188bbab56f

unblock ifupdown/0.7.53

-- System Information:
Debian Release: wheezy/sid
  APT prefers unstable
  APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: i386 (i686)

Kernel: Linux 3.12-1-686-pae (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8) (ignored: LC_ALL set to en_GB.UTF-8)
Shell: /bin/sh linked to /bin/mksh
diff --git a/debian/changelog b/debian/changelog
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+ifupdown (0.7.53) UNRELEASED; urgency=medium
+
+  * Default accept_ra to 0 when gateway is set (Closes: #775660).
+  * Don't try to parse a non-existing file given by wordexp (Closes: #776578).
+
+ -- Andrew Shadura <andrewsh@debian.org>  Wed, 11 Mar 2015 00:04:44 +0100
+
 ifupdown (0.7.52) unstable; urgency=medium
 
   * Fix segfault when /e/n/i can't be read. Fail only when the file
diff --git a/archlinux.c b/archlinux.c
--- a/archlinux.c
+++ b/archlinux.c
@@ -295,3 +295,13 @@ void map_value(interface_defn * ifd UNUS
         *pparam[0] = 0;
     }
 }
+
+void if_set(interface_defn * ifd UNUSED, char **pparam, int argc, char **argv)
+{
+    if (argc == 1) {
+        *pparam = realloc(*pparam, strlen(argv[0]) + 1);
+        if (*pparam == NULL)
+            return;
+        strcpy(*pparam, argv[0]);
+    }
+}
diff --git a/archlinux.h b/archlinux.h
--- a/archlinux.h
+++ b/archlinux.h
@@ -16,3 +16,4 @@ void set_preferred_lft(interface_defn * 
 void get_token(interface_defn * ifd, char **pparam, int argc, char **argv);
 void to_decimal(interface_defn * ifd, char **pparam, int argc, char **argv);
 void map_value(interface_defn * ifd, char **pparam, int argc, char **argv);
+void if_set(interface_defn * ifd, char **pparam, int argc, char **argv);
diff --git a/config.c b/config.c
--- a/config.c
+++ b/config.c
@@ -10,6 +10,9 @@
 #include <libgen.h>
 #include <wordexp.h>
 #include <dirent.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <unistd.h>
 static int get_line(char **result, size_t * result_len, FILE * f, int *line);
 static char *next_word(char *buf, char *word, int maxlen);
 static address_family *get_address_family(address_family * af[], char *name);
@@ -280,10 +283,18 @@ interfaces_file *read_interfaces_defn(in
             wordexp_t p;
             char **w;
             size_t i;
+            struct stat sb;
+
             int fail = wordexp(pattern, &p, WRDE_NOCMD);
             if (!fail) {
                 w = p.we_wordv;
                 for (i = 0; i < p.we_wordc; i++) {
+                    if (stat(w[i], &sb) == -1) {
+                        /* wordexp can't expand * in an empty dir */
+                        if (errno == ENOENT) {
+                            continue;
+                        }
+                    }
                     if (verbose) {
                         fprintf(stderr, "Parsing file %s\n", w[i]);
                     }
diff --git a/debian/testbuild-linux b/debian/testbuild-linux
--- a/debian/testbuild-linux
+++ b/debian/testbuild-linux
@@ -178,7 +178,7 @@ EOF
 
 cat >tests/testcase.3 <<EOF
 # RUN: -a
-auto eth0
+auto eth0 eth1
 iface eth0 inet static
   address 1.2.3.4
   netmask 255.255.255.0
@@ -206,6 +206,16 @@ iface eth0 inet6 static
 iface eth0 inet6 static
   address /
   dad-attempts 0
+
+iface eth1 inet6 static
+  address 3ffe:ffff:100:f102::1/64
+  gateway 3ffe:ffff:100:f102::fff
+  dad-attempts 0
+iface eth1 inet6 static
+  address 3ffe:ffff:100:f102::6/64
+  gateway 3ffe:ffff:100:f102::fff
+  accept_ra 1
+  dad-attempts 0
 EOF
 cat >tests/up.3 <<EOF
 ====stdout====
@@ -281,6 +291,26 @@ run-parts --exit-on-error --verbose /etc
 Configuring interface eth0=eth0 (inet6)
 Missing required variable: address
 Missing required configuration variables for interface eth0/inet6.
+Configuring interface eth1=eth1 (inet6)
+run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
+modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
+
+sysctl -q -e -w net.ipv6.conf.eth1.accept_ra=0
+sysctl -q -e -w net.ipv6.conf.eth1.autoconf=0
+ip link set dev eth1   up
+ip -6 addr add 3ffe:ffff:100:f102::1/64  dev eth1 
+ ip -6 route add default via 3ffe:ffff:100:f102::fff dev eth1 
+run-parts --exit-on-error --verbose /etc/network/if-up.d
+Configuring interface eth1=eth1 (inet6)
+run-parts --exit-on-error --verbose /etc/network/if-pre-up.d
+modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.
+
+sysctl -q -e -w net.ipv6.conf.eth1.accept_ra=1
+sysctl -q -e -w net.ipv6.conf.eth1.autoconf=0
+ip link set dev eth1   up
+ip -6 addr add 3ffe:ffff:100:f102::6/64  dev eth1 
+ ip -6 route add default via 3ffe:ffff:100:f102::fff dev eth1 
+run-parts --exit-on-error --verbose /etc/network/if-up.d
 run-parts --exit-on-error --verbose /etc/network/if-up.d
 EOF
 
diff --git a/inet6.defn b/inet6.defn
--- a/inet6.defn
+++ b/inet6.defn
@@ -66,6 +66,7 @@ method static
     preferred-lifetime set_preferred_lft
     address (get_token / 1 "") =netmask?
     address (get_token / 0 "")
+    gateway (if_set 0) =accept_ra?
 
   up
     modprobe -q net-pf-10 > /dev/null 2>&1 || true # ignore failure.

--- End Message ---
--- Begin Message ---
On 2015-03-13 13:22, Andrew Shadura wrote:
> Hi,
> 
> I'm really sorry, I uploaded a wrong thing. 0.7.53.1 is what should
> really be unblocked.
> 

Ok, unblocked, thanks.

~Niels

--- End Message ---

Reply to: