summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Kelley <simon@thekelleys.org.uk>2012-08-13 17:39:57 +0100
committerSimon Kelley <simon@thekelleys.org.uk>2012-08-13 17:39:57 +0100
commit3169daad4692213a7efc4f204505a23741bc46e7 (patch)
treefc4cae1525c291a53f3e2bebf3a8bd2bc7f639d7
parentfd05f127909bbf4f6983a4de2dcb611947488dee (diff)
downloaddnsmasq-3169daad4692213a7efc4f204505a23741bc46e7.tar.gz
Fix TFTP access control, broken earlier in release.
-rw-r--r--src/tftp.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/tftp.c b/src/tftp.c
index a7f5680..82bbccc 100644
--- a/src/tftp.c
+++ b/src/tftp.c
@@ -113,7 +113,6 @@ void tftp_request(struct listener *listen, time_t now)
else
{
struct cmsghdr *cmptr;
- int check;
if (msg.msg_controllen < sizeof(struct cmsghdr))
return;
@@ -193,10 +192,14 @@ void tftp_request(struct listener *listen, time_t now)
#ifdef HAVE_IPV6
if (listen->family == AF_INET6)
- check = iface_check(AF_INET6, (struct all_addr *)&addr.in6.sin6_addr, name);
+ {
+ if (!iface_check(AF_INET6, (struct all_addr *)&addr.in6.sin6_addr, name))
+ return;
+ }
else
#endif
- check = iface_check(AF_INET, (struct all_addr *)&addr.in.sin_addr, name);
+ if (!iface_check(AF_INET, (struct all_addr *)&addr.in.sin_addr, name))
+ return;
#ifdef HAVE_DHCP
/* allowed interfaces are the same as for DHCP */