diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-01-28 22:36:01 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2018-01-28 22:36:01 +0100 |
commit | 549a6745e3b6a69c9a14deb5090b8fa1ad444f06 (patch) | |
tree | fd736a074cdda8890cc5429b6d117afecc4e7459 /sys/src/cmd/ndb/dn.c | |
parent | b3b938d5ecb39e0548ab811ee1099e6dda67052f (diff) |
ndb/dns: fix leak in myaddr(), normalize ip strings
remove myaddr() function and replace with myip() function
that receives binary ip address. and don't use string
comparsion for ip addresses... parse and then ipcmp().
for sanity reasons, normalize ip address strings and
reject unparsable ones. done by calling ipalookup()
with a binary ip address.
Diffstat (limited to 'sys/src/cmd/ndb/dn.c')
-rw-r--r-- | sys/src/cmd/ndb/dn.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/sys/src/cmd/ndb/dn.c b/sys/src/cmd/ndb/dn.c index f5bc103ab..dd566be06 100644 --- a/sys/src/cmd/ndb/dn.c +++ b/sys/src/cmd/ndb/dn.c @@ -233,6 +233,15 @@ idnlookup(char *name, int class, int enter) return dnlookup(name, class, enter); } +DN* +ipalookup(uchar *ip, int class, int enter) +{ + char addr[64]; + + snprint(addr, sizeof(addr), "%I", ip); + return dnlookup(addr, class, enter); +} + static int rrsame(RR *rr1, RR *rr2) { |