summaryrefslogtreecommitdiff
path: root/sys/src/cmd/ndb/dn.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2018-01-28 22:36:01 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2018-01-28 22:36:01 +0100
commit549a6745e3b6a69c9a14deb5090b8fa1ad444f06 (patch)
treefd736a074cdda8890cc5429b6d117afecc4e7459 /sys/src/cmd/ndb/dn.c
parentb3b938d5ecb39e0548ab811ee1099e6dda67052f (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.c9
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)
{