git: 9front

Download patch

ref: c386b40bf01c55891d8b17b07456f7159a98131b
parent: e92c0d470b0ac35ca132a607018c36cb9216964a
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Thu Aug 7 22:06:03 EDT 2014

ndb/dns: fix nil dereference crash with convM2DNS() returning reqmsg.qd == nil

--- a/sys/src/cmd/ndb/dnstcp.c
+++ b/sys/src/cmd/ndb/dnstcp.c
@@ -122,6 +122,12 @@
 					reqmsg.flags & Omask, caller);
 				break;
 			}
+
+		if(reqmsg.qd == nil){
+			dnslog("server: no question RR from %s", caller);
+			break;
+		}
+
 		if(debug)
 			dnslog("[%d] %d: serve (%s) %d %s %s",
 				getpid(), req.id, caller,
--- a/sys/src/cmd/ndb/dnudpserver.c
+++ b/sys/src/cmd/ndb/dnudpserver.c
@@ -215,6 +215,11 @@
 			goto freereq;
 		}
 
+		if(reqmsg.qd == nil){
+			dnslog("server: no question RR from %I", buf);
+			goto freereq;
+		}
+
 		if(debug || (trace && subsume(trace, reqmsg.qd->owner->name)))
 			dnslog("%d: serve (%I/%d) %d %s %s",
 				req.id, buf, uh->rport[0]<<8 | uh->rport[1],
--