summaryrefslogtreecommitdiff
path: root/sys/src/libndb/ndbipinfo.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2019-02-12 21:44:57 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2019-02-12 21:44:57 +0100
commit45213ee6c72347fd31dc2d999742f632d508a132 (patch)
tree4e08c57396cd5277b4a52773112bf99fbcb2ff80 /sys/src/libndb/ndbipinfo.c
parentd551a83ae4e3e42c4d7da9638ec1f937200844cb (diff)
ip/ipconfig, ndb/dns, libndb: handle parseipmask() errors
Diffstat (limited to 'sys/src/libndb/ndbipinfo.c')
-rw-r--r--sys/src/libndb/ndbipinfo.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/sys/src/libndb/ndbipinfo.c b/sys/src/libndb/ndbipinfo.c
index e2bb8ca6f..5ee706e55 100644
--- a/sys/src/libndb/ndbipinfo.c
+++ b/sys/src/libndb/ndbipinfo.c
@@ -123,7 +123,6 @@ subnet(Ndb *db, uchar *net, Ndbtuple *f, int prefix)
char netstr[64];
uchar mask[IPaddrlen];
Ndbtuple *t, *nt, *xt;
- int masklen;
t = nil;
snprint(netstr, sizeof(netstr), "%I", net);
@@ -132,12 +131,9 @@ subnet(Ndb *db, uchar *net, Ndbtuple *f, int prefix)
xt = ndbfindattr(nt, nt, "ipnet");
if(xt != nil){
xt = ndbfindattr(nt, nt, "ipmask");
- if(xt != nil)
- parseipmask(mask, xt->val, isv4(net));
- else
+ if(xt == nil || parseipmask(mask, xt->val, isv4(net)) == -1)
ipmove(mask, defmask(net));
- masklen = prefixlen(mask);
- if(masklen <= prefix){
+ if(prefixlen(mask) <= prefix){
t = ndbconcatenate(t, filter(db, nt, f));
nt = nil;
}