summary refs log tree commit diff
path: root/pkgs/tools/networking
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2014-07-15 16:23:24 +0200
committerEelco Dolstra <eelco.dolstra@logicblox.com>2014-07-15 16:23:47 +0200
commit1dc5e5fb8ca1dc7446bcfcf7c911a0a118ae6ab5 (patch)
treee98d38f36c14d317def04c634c3ef5e4cfe375f3 /pkgs/tools/networking
parentbce5f2cf56a3e91ff8d7175364227f91a8378580 (diff)
downloadnixlib-1dc5e5fb8ca1dc7446bcfcf7c911a0a118ae6ab5.tar
nixlib-1dc5e5fb8ca1dc7446bcfcf7c911a0a118ae6ab5.tar.gz
nixlib-1dc5e5fb8ca1dc7446bcfcf7c911a0a118ae6ab5.tar.bz2
nixlib-1dc5e5fb8ca1dc7446bcfcf7c911a0a118ae6ab5.tar.lz
nixlib-1dc5e5fb8ca1dc7446bcfcf7c911a0a118ae6ab5.tar.xz
nixlib-1dc5e5fb8ca1dc7446bcfcf7c911a0a118ae6ab5.tar.zst
nixlib-1dc5e5fb8ca1dc7446bcfcf7c911a0a118ae6ab5.zip
dhcpcd: Update to 6.4.2
Diffstat (limited to 'pkgs/tools/networking')
-rw-r--r--pkgs/tools/networking/dhcpcd/check-interface.patch44
-rw-r--r--pkgs/tools/networking/dhcpcd/default.nix6
-rw-r--r--pkgs/tools/networking/dhcpcd/reload.patch26
3 files changed, 3 insertions, 73 deletions
diff --git a/pkgs/tools/networking/dhcpcd/check-interface.patch b/pkgs/tools/networking/dhcpcd/check-interface.patch
deleted file mode 100644
index 11685c0d45e4..000000000000
--- a/pkgs/tools/networking/dhcpcd/check-interface.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-Fix a segfault in handle_interface: if we're adding an interface that
-we already knew about (in particular due to a udev event), then
-calling init_state/start_interface on ifp is bad because we later free
-ifp. This leads to messages like:
-
-  dhcpcd[1342]: eth0: IAID conflicts with one assigned to eth0
-
-and then a crash:
-
-  Invalid read of size 8
-    at 0x41CD07: dhcp_handlepacket (dhcp.c:2555)
-    by 0x408A74: eloop_start (eloop.c:399)
-    by 0x4073B6: main (dhcpcd.c:1537)
-
-  Address 0x54573d8 is 200 bytes inside a block of size 232 free'd
-    at 0x4C27507: free (in /nix/store/jafbjc2y6izmh3sk78fl65n55jll4mj8-valgrind-3.9.0/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
-    by 0x40F0A8: free_interface (net.c:153)
-    by 0x405443: handle_interface (dhcpcd.c:764) by 0x57E0F06: ??? (udev.c:97)
-    by 0x42EB62: dev_handle_data (dev.c:153)
-    by 0x408A74: eloop_start (eloop.c:399)
-    by 0x4073B6: main (dhcpcd.c:1537)
-
-So ignore interfaces that we already know about.
-
-diff -ru -x '*~' dhcpcd-6.4.0-orig/dhcpcd.c dhcpcd-6.4.0/dhcpcd.c
---- dhcpcd-6.4.0-orig/dhcpcd.c	2014-06-14 22:13:12.000000000 +0200
-+++ dhcpcd-6.4.0/dhcpcd.c	2014-07-03 11:13:39.133186533 +0200
-@@ -774,11 +774,11 @@
- 		} else {
- 			TAILQ_REMOVE(ifs, ifp, next);
- 			TAILQ_INSERT_TAIL(ctx->ifaces, ifp, next);
--		}
--		if (action > 0) {
--			init_state(ifp, ctx->argc, ctx->argv);
--			run_preinit(ifp);
--			dhcpcd_startinterface(ifp);
-+			if (action > 0) {
-+				init_state(ifp, ctx->argc, ctx->argv);
-+				run_preinit(ifp);
-+				dhcpcd_startinterface(ifp);
-+			}
- 		}
- 	}
- 
diff --git a/pkgs/tools/networking/dhcpcd/default.nix b/pkgs/tools/networking/dhcpcd/default.nix
index c3eeb20a2dea..8e93c424cb1e 100644
--- a/pkgs/tools/networking/dhcpcd/default.nix
+++ b/pkgs/tools/networking/dhcpcd/default.nix
@@ -1,14 +1,14 @@
 { stdenv, fetchurl, pkgconfig, udev }:
 
 stdenv.mkDerivation rec {
-  name = "dhcpcd-6.4.0";
+  name = "dhcpcd-6.4.2";
 
   src = fetchurl {
     url = "http://roy.marples.name/downloads/dhcpcd/${name}.tar.bz2";
-    sha256 = "04whlqg1lik1c690kpgmw5hh6qzim64bw0l4fpr4vb8cj74aj4q4";
+    sha256 = "1dr08aqvazg4ncq5p93v6givwh7naj75dn2npgplf3dl2fg9zfzf";
   };
 
-  patches = [ /* ./lxc_ro_promote_secondaries.patch */ ./reload.patch ./check-interface.patch ];
+  patches = [ /* ./lxc_ro_promote_secondaries.patch */ ];
 
   buildInputs = [ pkgconfig udev ];
 
diff --git a/pkgs/tools/networking/dhcpcd/reload.patch b/pkgs/tools/networking/dhcpcd/reload.patch
deleted file mode 100644
index 126ad105cbbf..000000000000
--- a/pkgs/tools/networking/dhcpcd/reload.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-Fix segfault when reloading the configuration: free_globals() left the
-ifac/ifdc variables at -1 instead of 0, causing a crash later in
-splitv().
-
---- a/dhcpcd.c
-+++ b/dhcpcd.c
-@@ -143,16 +143,18 @@
- 	if (ctx->ifac) {
- 		for (ctx->ifac--; ctx->ifac >= 0; ctx->ifac--)
- 			free(ctx->ifav[ctx->ifac]);
- 		free(ctx->ifav);
- 		ctx->ifav = NULL;
-+		ctx->ifac = 0;
- 	}
- 	if (ctx->ifdc) {
- 		for (ctx->ifdc--; ctx->ifdc >= 0; ctx->ifdc--)
- 			free(ctx->ifdv[ctx->ifdc]);
- 		free(ctx->ifdv);
- 		ctx->ifdv = NULL;
-+		ctx->ifdc = 0;
- 	}
- 
- #ifdef INET
- 	if (ctx->dhcp_opts) {
- 		for (opt = ctx->dhcp_opts;
-