diff options
author | cinap_lenrek <cinap_lenrek@felloff.net> | 2019-02-12 21:44:57 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2019-02-12 21:44:57 +0100 |
commit | 45213ee6c72347fd31dc2d999742f632d508a132 (patch) | |
tree | 4e08c57396cd5277b4a52773112bf99fbcb2ff80 /sys/src/libndb/ndbipinfo.c | |
parent | d551a83ae4e3e42c4d7da9638ec1f937200844cb (diff) |
ip/ipconfig, ndb/dns, libndb: handle parseipmask() errors
Diffstat (limited to 'sys/src/libndb/ndbipinfo.c')
-rw-r--r-- | sys/src/libndb/ndbipinfo.c | 8 |
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; } |