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

Bug#1124753: trixie-pu: package ifupdown/0.8.44+deb13u1



Hi,

Please find the debdiff attached.

On Tue, Jan 06, 2026 at 12:48:03PM +0100, Daniel Gröber wrote:
> Package: release.debian.org
> Severity: normal
> Tags: trixie
> X-Debbugs-Cc: ifupdown@packages.debian.org, dxld@darkboxed.org, Mark Kamichoff <prox@janeway.prolixium.com>
> Control: affects -1 + src:ifupdown
> User: release.debian.org@packages.debian.org
> Usertags: pu
> 
> [ Reason ]
> ifupdown in stable introduced a regression causing none of the important
> internal scripts getting executed.
> 
> [ Impact ]
> Boot failures, service failures, IPv6 network unreachability.
> 
> Problems I've found so far: Not waiting for IPv6 DAD to complete can cause
> persistent downstream service failures (#1122511) and not waiting for IPv6
> link-locals causes DHCP configuration to fail (#1088852).
> 
> [ Tests ]
> I'm asking an affected user to confirm #1122511 is fixed before uploading
> to unstable since I don't have time to do a deep dive to confirm it
> manually myself right now.
> 
> Since the underlying breakage is the same for these bugs that should give
> us sufficient test coverage for both bugs.

I've manually validated the fix in unstable (0.8.45) in a debvm using
strace and ifup -v inspection (can see settle-dad.sh for `inet6 static` and
wait-for-ll6.sh for `inet6 dhcp` when isc-dhcp-client is installed).

Internal scripts where execable() previously returned false are now
executed properly and system binaries (tested with `inet dhcp` and
isc-dhcp-client) are still executed as expected - meaning execable() is
still returning true for them as well.

> [ Risks ]
> The actual bug is trivial once you see it.
> 
> Worst case if I fuxed up the fix doesn't fix it, but since execable() is
> already as broken as it can be it wont break any further ;-).
> 

[ Checklist (Updated) ]
  [x] *all* changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in (old)stable
  [x] the issue is verified as fixed in unstable

> [ Changes ]
> 
>  - Fix execable() returning false for scripts in lib(exec)
> 
>    Commit 1eee7a30 ("Use relative names when executing programs") released
>    in 0.8.42 failed to take into account that PATH is only set locally when
>    executing commands, not globally and so getenv("PATH") returns the
>    system default nor our extended PATH.
> 
> [ Other info ]
> I'll send the final debdiff as soon as I get confirmation for the fix in
> experimental.

--Daniel
diff -Nru ifupdown-0.8.44/archcommon.c ifupdown-0.8.44+deb13u1/archcommon.c
--- ifupdown-0.8.44/archcommon.c	2024-08-20 04:02:23.000000000 +0200
+++ ifupdown-0.8.44+deb13u1/archcommon.c	2026-01-08 14:16:10.000000000 +0100
@@ -35,17 +35,13 @@
 
 bool execable(const char *program) {
 	char *filename = NULL;
-	const char *path_list;
+	const char *path_list = EXECUTE_LOCAL_PATHLIST;
 	const char *path, *path_end;
 	size_t path_len;
 
 	if (program[0] == '/')
 		return file_is_exec(program);
 
-	path_list = getenv("PATH");
-	if (!path_list)
-		return false;
-
 	/*
 	 * We allocate based on the length of PATH and the program name we
 	 * are looking for (plus one byte for the terminating NUL, and a
diff -Nru ifupdown-0.8.44/debian/changelog ifupdown-0.8.44+deb13u1/debian/changelog
--- ifupdown-0.8.44/debian/changelog	2024-09-17 14:08:12.000000000 +0200
+++ ifupdown-0.8.44+deb13u1/debian/changelog	2026-01-08 14:17:04.000000000 +0100
@@ -1,3 +1,18 @@
+ifupdown (0.8.44+deb13u1) trixie; urgency=medium
+
+  * Fix ifup regression where it would return before IPv6 DAD had
+    completed allowing boot to proceed and causing subsequent service
+    start failures with "Cannot assign requested" or "Address not available".
+    (Closes: #1122511)
+  * Fix ifup regression calling dhclient before IPv6 link-locals are
+    available on interface.
+    (Closes: #1088852)
+  * Fix execable() returning false for scripts in lib(exec) causing the
+    above regressions. This underlying bug was introduced in 0.8.42.
+  * Add myself to Uploaders.
+
+ -- Daniel Gröber <dxld@darkboxed.org>  Thu, 08 Jan 2026 14:17:04 +0100
+
 ifupdown (0.8.44) unstable; urgency=low
 
   [ Debian Janitor ]
diff -Nru ifupdown-0.8.44/debian/control ifupdown-0.8.44+deb13u1/debian/control
--- ifupdown-0.8.44/debian/control	2024-09-17 14:07:12.000000000 +0200
+++ ifupdown-0.8.44+deb13u1/debian/control	2026-01-08 14:16:10.000000000 +0100
@@ -2,7 +2,10 @@
 Section: admin
 Priority: important
 Maintainer: Debian Networking Team <team+networking@tracker.debian.org>
-Uploaders: Josué Ortega <josue@debian.org>, Santiago Ruano Rincón <santiago@debian.org>
+Uploaders:
+ Daniel Gröber <dxld@darkboxed.org>,
+ Josué Ortega <josue@debian.org>,
+ Santiago Ruano Rincón <santiago@debian.org>,
 Standards-Version: 4.6.1
 Build-Depends: debhelper-compat (= 13)
 Vcs-Git: https://salsa.debian.org/debian/ifupdown.git
diff -Nru ifupdown-0.8.44/execute.c ifupdown-0.8.44+deb13u1/execute.c
--- ifupdown-0.8.44/execute.c	2024-08-20 04:02:23.000000000 +0200
+++ ifupdown-0.8.44+deb13u1/execute.c	2026-01-08 14:16:10.000000000 +0100
@@ -104,7 +104,7 @@
 	*ppch++ = setlocalenv("%s=%s", "MODE", mode);
 	*ppch++ = setlocalenv("%s=%s", "PHASE", phase);
 	*ppch++ = setlocalenv("%s=%s", "VERBOSITY", verbose ? "1" : "0");
-	*ppch++ = setlocalenv("%s=%s", "PATH", PKGLIBDIR ":/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin");
+	*ppch++ = setlocalenv("%s=%s", "PATH", EXECUTE_LOCAL_PATHLIST);
 	if (allow_class || do_all)
 		*ppch++ = setlocalenv("%s=%s", "CLASS", allow_class ? allow_class : "auto");
 	*ppch = NULL;
diff -Nru ifupdown-0.8.44/header.h ifupdown-0.8.44+deb13u1/header.h
--- ifupdown-0.8.44/header.h	2024-08-20 04:02:23.000000000 +0200
+++ ifupdown-0.8.44+deb13u1/header.h	2026-01-08 14:16:10.000000000 +0100
@@ -100,6 +100,8 @@
 #define RUN_DIR "/run/network/"
 #endif
 
+#define EXECUTE_LOCAL_PATHLIST (PKGLIBDIR ":/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin")
+
 #ifndef LO_IFACE
 #define LO_IFACE "lo"
 #endif

Attachment: signature.asc
Description: PGP signature


Reply to: