Re: [PATCH] dns: store priv->last_iface even when no actual updates are performed



On Tue, 2013-02-05 at 19:12 +0100, Michael Stapelberg wrote:
> Hi,
> 
> the attached patch fixes a segmentation fault with n-m >= 0.9.6.4 (I
> upgraded from 0.9.4.0, so it might be introduced earlier).
> 
> Here is the commit message:
> 
> dns: store priv->last_iface even when no actual updates are performed
> 
> Otherwise, with DNS batch updating (commit f76aa4f), we might end up in
> the situation where priv->last_iface is NULL when adding a link-local
> IPv6 DNS server (e.g. fe80::4e60:deff:fed8:d7c5%wlan0), leading to a
> segmentation fault.

Sending the interface name is a hack anyway just to make netconfig and
resolvconf happy, even though prioritizing DNS information based on
interface name is bogus.  NM merges and prioritizes the DNS
configuration before sending to resolvconf/netconfig, so whatever
interface we happen to send to them is already quite wrong, since the
data may come from multiple interfaces.

Instead, we should rip out all the interface name stuff and simply send
"NetworkManager".  Then people can do whatever they want with NM's data
in the resolvconf priority, and I have no idea what netconfig does with
INTERFACE=xxx but it's still going to be wrong, whatever it is.

(you simply can't prioritize DNS data based on interface names, because
interfaces service many different networks.  Sometimes your eth0 is
connected to a lower-priority network than your wlan0, sometimes it's
higher.  That is a *per-network* decision, not a per-interface one, but
netconfig/resolvconf still seem to think it's per-interface...)

Dan



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