diff -u dnsmasq-2.79/debian/changelog dnsmasq-2.79/debian/changelog --- dnsmasq-2.79/debian/changelog +++ dnsmasq-2.79/debian/changelog @@ -1,3 +1,9 @@ +dnsmasq (2.79-1ubuntu0.5) bionic; urgency=medium + + * src/forward.c: add missing EDNS0 section. (LP: #1785383) + + -- Paride Legovini Fri, 24 Sep 2021 13:05:51 +0200 + dnsmasq (2.79-1ubuntu0.4) bionic-security; urgency=medium * SECURITY UPDATE: fixed port use when specific server is requested diff -u dnsmasq-2.79/src/forward.c dnsmasq-2.79/src/forward.c --- dnsmasq-2.79/src/forward.c +++ dnsmasq-2.79/src/forward.c @@ -571,6 +571,8 @@ if (udpfd != -1) { plen = setup_reply(header, plen, addrp, flags, daemon->local_ttl); + if (oph) + plen = add_pseudoheader(header, plen, ((unsigned char *) header) + PACKETSZ, daemon->edns_pktsz, 0, NULL, 0, do_bit, 0); send_from(udpfd, option_bool(OPT_NOWILD) || option_bool(OPT_CLEVERBIND), (char *)header, plen, udpaddr, dst_addr, dst_iface); } @@ -1997,7 +1999,11 @@ /* In case of local answer or no connections made. */ if (m == 0) - m = setup_reply(header, (unsigned int)size, addrp, flags, daemon->local_ttl); + { + m = setup_reply(header, (unsigned int)size, addrp, flags, daemon->local_ttl); + if (have_pseudoheader) + m = add_pseudoheader(header, m, ((unsigned char *) header) + 65536, daemon->edns_pktsz, 0, NULL, 0, do_bit, 0); + } } }