diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-03-23 04:02:34 +0100 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2012-03-23 04:02:34 +0100 |
commit | 9840c9f18e2b6a15f89ecb3cf6420d2329685c00 (patch) | |
tree | 7e05003deb7caabd3b67861330441323de953c66 /sys/src/cmd/ndb/dns.c | |
parent | d3e7560e04adc329c3ec2edb578cabb956ed44e5 (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.c | 4 |
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); |