diff --git a/src/named-manager/nm-named-manager.c b/src/named-manager/nm-named-manager.c index b89c801..81f29b3 100644 --- a/src/named-manager/nm-named-manager.c +++ b/src/named-manager/nm-named-manager.c @@ -388,12 +388,19 @@ update_resolv_conf (const char *domain, const char *iface, GError **error) { - const char *tmp_resolv_conf = RESOLV_CONF ".tmp"; + char tmp_resolv_conf [PATH_MAX]; char tmp_resolv_conf_realpath [PATH_MAX]; + char resolv_conf_realpath [PATH_MAX]; FILE *f; int do_rename = 1; int old_errno = 0; + if (!realpath (RESOLV_CONF, resolv_conf_realpath)) + strcpy (resolv_conf_realpath, RESOLV_CONF); + + strcpy (tmp_resolv_conf, resolv_conf_realpath); + strcpy (tmp_resolv_conf + strlen (tmp_resolv_conf), ".tmp"); + if (!realpath (tmp_resolv_conf, tmp_resolv_conf_realpath)) strcpy (tmp_resolv_conf_realpath, tmp_resolv_conf);