diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2023-10-30 22:18:07 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2023-10-30 22:18:07 +0000 |
commit | 453d3c3d4c96899c7bbca81b8a143ac7a934aebe (patch) | |
tree | b50f06d9482c05aa0ccc78ae1cd2bb5d95577d3d | |
parent | 78eff200d85e0fc2f92622d221c0e3d81aaf9522 (diff) |
ndb/dns: make sure theres only a single Topt option in getednsopt().
-rw-r--r-- | sys/src/cmd/ndb/dnresolve.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/sys/src/cmd/ndb/dnresolve.c b/sys/src/cmd/ndb/dnresolve.c index 8f51c1514..d4ada0ca2 100644 --- a/sys/src/cmd/ndb/dnresolve.c +++ b/sys/src/cmd/ndb/dnresolve.c @@ -502,14 +502,21 @@ initdnsmsg(DNSmsg *mp, RR *rp, int flags, ushort reqno) RR* getednsopt(DNSmsg *mp) { - RR *rp; + RR *rp, *x; rp = rrremtype(&mp->ar, Topt); if(rp == nil) return nil; mp->arcount--; + while((x = rp->next) != nil){ + rp->next = x->next; + rrfree(x); + mp->arcount--; + } + if(rp->udpsize < 512) rp->udpsize = 512; + return rp; } |