I played with it but kept getting segfaults. So moved my version with a command line option to /use/local. I guess Im the only person using rebound and dig.
Sent from BlueMail On Jun 29, 2017, 4:13 AM, at 4:13 AM, Theo Buehler <[email protected]> wrote: >On Fri, May 26, 2017 at 08:08:08AM -0400, Ted Unangst wrote: >> Edgar Pettijohn wrote: >> > This may not be the best way to handle this, but it was the first >fix to >> > come to mind. Not sure where to put this in the manual or if its >even >> > worth documenting. Thoughts? >> >> I think this is a better fix. the user shouldn't worry about such >things. at >> least until a better path forward is determined. > >Are there any plans to revisit this? > >> >> Index: bin/dig/dighost.c >> =================================================================== >> RCS file: /cvs/src/usr.sbin/bind/bin/dig/dighost.c,v >> retrieving revision 1.15 >> diff -u -p -r1.15 dighost.c >> --- bin/dig/dighost.c 28 Sep 2015 15:55:54 -0000 1.15 >> +++ bin/dig/dighost.c 26 May 2017 12:03:53 -0000 >> @@ -34,6 +34,8 @@ >> #include <string.h> >> #include <limits.h> >> >> +#include <sys/sysctl.h> >> + >> #ifdef HAVE_LOCALE_H >> #include <locale.h> >> #endif >> @@ -2778,6 +2780,15 @@ recv_done(isc_task_t *task, isc_event_t >> isc_region_t r; >> isc_buffer_t *buf = NULL; >> #endif >> + static int checked_jackport; >> + static int jackport; >> + >> + if (!checked_jackport) { >> + int dnsjacking[2] = { CTL_KERN, KERN_DNSJACKPORT }; >> + size_t portlen = sizeof(jackport); >> + sysctl(dnsjacking, 2, &jackport, &portlen, NULL, 0); >> + checked_jackport = 1; >> + } >> >> UNUSED(task); >> INSIST(!free_now); >> @@ -2854,6 +2865,7 @@ recv_done(isc_task_t *task, isc_event_t >> * sent to 0.0.0.0, :: or to a multicast addresses. >> * XXXMPA broadcast needs to be handled here as well. >> */ >> + if (jackport == 0) >> if ((!isc_sockaddr_eqaddr(&query->sockaddr, &any) && >> !isc_sockaddr_ismulticast(&query->sockaddr)) || >> isc_sockaddr_getport(&query->sockaddr) != >>
