From 3169daad4692213a7efc4f204505a23741bc46e7 Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Mon, 13 Aug 2012 17:39:57 +0100 Subject: Fix TFTP access control, broken earlier in release. --- src/tftp.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src') 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 */ -- cgit v1.2.1