summaryrefslogtreecommitdiff
path: root/sys/src/cmd/ndb
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2014-08-08 02:06:03 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2014-08-08 02:06:03 +0200
commit0ceeee4c8b207b3833e005643abf8997a60c255f (patch)
tree7eae6dbf10f8e772ce9e31958357861b07f728d0 /sys/src/cmd/ndb
parent45333cdc92654eb58dc8c820dd58ae23c4a49640 (diff)
ndb/dns: fix nil dereference crash with convM2DNS() returning reqmsg.qd == nil
Diffstat (limited to 'sys/src/cmd/ndb')
-rw-r--r--sys/src/cmd/ndb/dnstcp.c6
-rw-r--r--sys/src/cmd/ndb/dnudpserver.c5
2 files changed, 11 insertions, 0 deletions
diff --git a/sys/src/cmd/ndb/dnstcp.c b/sys/src/cmd/ndb/dnstcp.c
index 72c188df9..3a9ee2955 100644
--- a/sys/src/cmd/ndb/dnstcp.c
+++ b/sys/src/cmd/ndb/dnstcp.c
@@ -122,6 +122,12 @@ main(int argc, char *argv[])
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,
diff --git a/sys/src/cmd/ndb/dnudpserver.c b/sys/src/cmd/ndb/dnudpserver.c
index bcd03e96f..08bb10aea 100644
--- a/sys/src/cmd/ndb/dnudpserver.c
+++ b/sys/src/cmd/ndb/dnudpserver.c
@@ -215,6 +215,11 @@ restart:
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],