Skip to content

Commit

Permalink
network-manager: fix segfaults on startup
Browse files Browse the repository at this point in the history
(adapted from patch in 052cd88)
  • Loading branch information
Mic92 committed Apr 5, 2017
1 parent 56e5561 commit f6558e6
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 3 deletions.
9 changes: 6 additions & 3 deletions pkgs/tools/networking/network-manager/default.nix
@@ -1,4 +1,4 @@
{ stdenv, fetchurl, intltool, pkgconfig, dbus_glib
{ stdenv, fetchurl, fetchpatch, intltool, pkgconfig, dbus_glib
, systemd, libgudev, libnl, libuuid, polkit, gnutls, ppp, dhcp, iptables
, libgcrypt, dnsmasq, bluez5, readline
, gobjectIntrospection, modemmanager, openresolv, libndp, newt, libsoup
Expand Down Expand Up @@ -58,7 +58,10 @@ stdenv.mkDerivation rec {
"--with-libsoup=yes"
];

patches = [ ./PppdPath.patch ];
patches = [
./PppdPath.patch
./null-dereference.patch
];

buildInputs = [ systemd libgudev libnl libuuid polkit ppp libndp
bluez5 dnsmasq gobjectIntrospection modemmanager readline newt libsoup ];
Expand All @@ -78,7 +81,7 @@ stdenv.mkDerivation rec {
substituteInPlace $out/etc/dbus-1/system.d/org.freedesktop.NetworkManager.conf --replace 'at_console="true"' 'group="networkmanager"'
# rename to network-manager to be in style
mv $out/etc/systemd/system/NetworkManager.service $out/etc/systemd/system/network-manager.service
mv $out/etc/systemd/system/NetworkManager.service $out/etc/systemd/system/network-manager.service
# systemd in NixOS doesn't use `systemctl enable`, so we need to establish
# aliases ourselves.
Expand Down
20 changes: 20 additions & 0 deletions pkgs/tools/networking/network-manager/null-dereference.patch
@@ -0,0 +1,20 @@
--- NetworkManager-1.4.4.org/src/dns-manager/nm-dns-manager.c 2016-12-15 20:39:00.000000000 +0100
+++ NetworkManager-1.4.4/src/dns-manager/nm-dns-manager.c 2017-04-05 13:03:29.473098217 +0200
@@ -607,8 +607,16 @@
_LOGI ("Removing DNS information from %s", RESOLVCONF_PATH);

cmd = g_strconcat (RESOLVCONF_PATH, " -d ", "NetworkManager", NULL);
- if (nm_spawn_process (cmd, error) != 0)
+ if (nm_spawn_process (cmd, error) != 0) {
+ if (error && !*error) {
+ g_set_error (error,
+ NM_MANAGER_ERROR,
+ NM_MANAGER_ERROR_FAILED,
+ "%s returned error code",
+ RESOLVCONF_PATH);
+ }
return SR_ERROR;
+ }

return SR_SUCCESS;
}

0 comments on commit f6558e6

Please sign in to comment.