summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorume <ume@FreeBSD.org>2002-09-14 17:28:40 +0000
committerume <ume@FreeBSD.org>2002-09-14 17:28:40 +0000
commitdb96f2a540e24e5ed025d0861f755d6bb187dbec (patch)
tree006f11af0c0b8038e507279e8e4c31eca2ccfead /lib
parentd77892e0d55d22b0096d14810f5b52217dcd18ae (diff)
downloadFreeBSD-src-db96f2a540e24e5ed025d0861f755d6bb187dbec.zip
FreeBSD-src-db96f2a540e24e5ed025d0861f755d6bb187dbec.tar.gz
Limit UDP payload size for EDNS0 to 0xffff, not use lower 16bit value.
Obtained from: KAME
Diffstat (limited to 'lib')
-rw-r--r--lib/libc/net/res_mkquery.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/libc/net/res_mkquery.c b/lib/libc/net/res_mkquery.c
index f079e0d..7ef1ace 100644
--- a/lib/libc/net/res_mkquery.c
+++ b/lib/libc/net/res_mkquery.c
@@ -229,6 +229,8 @@ res_opt(n0, buf, buflen, anslen)
__putshort(T_OPT, cp); /* TYPE */
cp += INT16SZ;
+ if (anslen > 0xffff)
+ anslen = 0xffff; /* limit to 16bit value */
__putshort(anslen & 0xffff, cp); /* CLASS = UDP payload size */
cp += INT16SZ;
*cp++ = NOERROR; /* extended RCODE */
OpenPOWER on IntegriCloud