summaryrefslogtreecommitdiff
path: root/sys/src/cmd/ndb/dns.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2012-03-23 04:02:34 +0100
committercinap_lenrek <cinap_lenrek@gmx.de>2012-03-23 04:02:34 +0100
commit9840c9f18e2b6a15f89ecb3cf6420d2329685c00 (patch)
tree7e05003deb7caabd3b67861330441323de953c66 /sys/src/cmd/ndb/dns.c
parentd3e7560e04adc329c3ec2edb578cabb956ed44e5 (diff)
ndb/cs: fix use after free caused by flush/clunk happening before dns lookup finishes
Diffstat (limited to 'sys/src/cmd/ndb/dns.c')
-rw-r--r--sys/src/cmd/ndb/dns.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/sys/src/cmd/ndb/dns.c b/sys/src/cmd/ndb/dns.c
index 1bd0ef7fa..e4244e5f8 100644
--- a/sys/src/cmd/ndb/dns.c
+++ b/sys/src/cmd/ndb/dns.c
@@ -33,7 +33,6 @@ static volatile int stop;
struct Mfile
{
Mfile *next; /* next free mfile */
- int ref;
char *user;
Qid qid;
@@ -339,8 +338,7 @@ freefid(Mfile *mf)
for(l = &mfalloc.inuse; *l != nil; l = &(*l)->next)
if(*l == mf){
*l = mf->next;
- if(mf->user)
- free(mf->user);
+ free(mf->user);
memset(mf, 0, sizeof *mf); /* cause trouble */
free(mf);
unlock(&mfalloc);