mirror of
https://github.com/pi-hole/dnsmasq.git
synced 2025-12-19 10:18:25 +00:00
Log error if we try and use netlink in a child process.
Child processes to handle TCP connections don't have an open netlink socket. If they call iface_enumerate() that's a bug.
This commit is contained in:
@@ -127,6 +127,7 @@ int main (int argc, char **argv)
|
|||||||
This might be increased is EDNS packet size if greater than the minimum. */
|
This might be increased is EDNS packet size if greater than the minimum. */
|
||||||
daemon->packet_buff_sz = daemon->edns_pktsz + MAXDNAME + RRFIXEDSZ;
|
daemon->packet_buff_sz = daemon->edns_pktsz + MAXDNAME + RRFIXEDSZ;
|
||||||
daemon->packet = safe_malloc(daemon->packet_buff_sz);
|
daemon->packet = safe_malloc(daemon->packet_buff_sz);
|
||||||
|
daemon->pipe_to_parent = -1;
|
||||||
|
|
||||||
if (option_bool(OPT_EXTRALOG))
|
if (option_bool(OPT_EXTRALOG))
|
||||||
daemon->addrbuff2 = safe_malloc(ADDRSTRLEN);
|
daemon->addrbuff2 = safe_malloc(ADDRSTRLEN);
|
||||||
@@ -1080,8 +1081,6 @@ int main (int argc, char **argv)
|
|||||||
|
|
||||||
pid = getpid();
|
pid = getpid();
|
||||||
|
|
||||||
daemon->pipe_to_parent = -1;
|
|
||||||
|
|
||||||
#ifdef HAVE_INOTIFY
|
#ifdef HAVE_INOTIFY
|
||||||
/* Using inotify, have to select a resolv file at startup */
|
/* Using inotify, have to select a resolv file at startup */
|
||||||
poll_resolv(1, 0, now);
|
poll_resolv(1, 0, now);
|
||||||
|
|||||||
@@ -165,6 +165,13 @@ int iface_enumerate(int family, void *parm, callback_t callback)
|
|||||||
struct rtgenmsg g;
|
struct rtgenmsg g;
|
||||||
} req;
|
} req;
|
||||||
|
|
||||||
|
/* The netlink socket is not available in child processes. */
|
||||||
|
if (daemon->pipe_to_parent != -1)
|
||||||
|
{
|
||||||
|
my_syslog(LOG_ERR, _("BUG: called iface_enumerate() in child process"));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
memset(&req, 0, sizeof(req));
|
memset(&req, 0, sizeof(req));
|
||||||
memset(&addr, 0, sizeof(addr));
|
memset(&addr, 0, sizeof(addr));
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user