shithub: riscv

Download patch

ref: 94018b213027a9252628e107c202eefc7261073a
parent: 48d117ed648d859f407e1314effbbec56ff867ec
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Mon Apr 16 21:34:10 EDT 2018

fix parseip() error handling in ipconfig, ppp, tftpfs and dns

--- a/sys/src/cmd/ip/ipconfig/main.c
+++ b/sys/src/cmd/ip/ipconfig/main.c
@@ -1715,7 +1715,8 @@
 			uchar ip[IPaddrlen];
 
 			if((nt = ndbfindattr(t, t, "ip")) == nil
-			|| parseip(ip, nt->val) < 0 || ipcmp(ip, conf.laddr) != 0){
+			|| parseip(ip, nt->val) == -1
+			|| ipcmp(ip, conf.laddr) != 0){
 				p = seprint(p, e, "\n");
 				for(nt = t; nt != nil; nt = nt->entry)
 					p = seprint(p, e, "%s=%s%s", nt->attr, nt->val,
@@ -1837,7 +1838,7 @@
 			ok = parseip(conf.fs+IPaddrlen*nfs++, nt->val);
 		else if(nauth < sizeof(conf.auth)/IPaddrlen && strcmp(nt->attr, "auth") == 0)
 			ok = parseip(conf.auth+IPaddrlen*nauth++, nt->val);
-		if (!ok)
+		if(ok == -1)
 			fprint(2, "%s: bad %s address in ndb: %s\n", argv0,
 				nt->attr, nt->val);
 	}
--- a/sys/src/cmd/ip/ppp/ppp.c
+++ b/sys/src/cmd/ip/ppp/ppp.c
@@ -2901,7 +2901,8 @@
 			uchar ip[IPaddrlen];
 
 			if((nt = ndbfindattr(t, t, "ip")) == nil
-			|| parseip(ip, nt->val) < 0 || ipcmp(ip, ppp->local) != 0){
+			|| parseip(ip, nt->val) == -1
+			|| ipcmp(ip, ppp->local) != 0){
 				p = seprint(p, e, "\n");
 				for(nt = t; nt != nil; nt = nt->entry)
 					p = seprint(p, e, "%s=%s%s", nt->attr, nt->val,
--- a/sys/src/cmd/ip/tftpfs.c
+++ b/sys/src/cmd/ip/tftpfs.c
@@ -295,7 +295,7 @@
 	if(r->ifcall.aname && r->ifcall.aname[0]){
 		uchar addr[IPaddrlen];
 
-		if(parseip(addr, r->ifcall.aname) < 0){
+		if(parseip(addr, r->ifcall.aname) == -1){
 			respond(r, "bad ip specified");
 			return;
 		}
@@ -459,7 +459,7 @@
 	case 0:
 		break;
 	case 1:
-		if(parseip(ipaddr, *argv) < 0)
+		if(parseip(ipaddr, *argv) == -1)
 			usage();
 		break;
 	default:
--- a/sys/src/cmd/ndb/dnudpserver.c
+++ b/sys/src/cmd/ndb/dnudpserver.c
@@ -80,7 +80,7 @@
 		return -1;
 	}
 	tp = forwtarg + forwtcount;
-	if (parseip(tp->addr, host) < 0) {
+	if(parseip(tp->addr, host) == -1) {
 		dnslog("can't parse ip %s", host);
 		return -1;
 	}