diff options
author | ume <ume@FreeBSD.org> | 2002-09-14 17:28:40 +0000 |
---|---|---|
committer | ume <ume@FreeBSD.org> | 2002-09-14 17:28:40 +0000 |
commit | db96f2a540e24e5ed025d0861f755d6bb187dbec (patch) | |
tree | 006f11af0c0b8038e507279e8e4c31eca2ccfead /lib/libc | |
parent | d77892e0d55d22b0096d14810f5b52217dcd18ae (diff) | |
download | FreeBSD-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/libc')
-rw-r--r-- | lib/libc/net/res_mkquery.c | 2 |
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 */ |