devloopback: fix potential channel leak on allocation error (from eriks 9atom)
This commit is contained in:
parent
58533c35fb
commit
d4414b3959
1 changed files with 7 additions and 1 deletions
|
@ -131,8 +131,12 @@ loopbackattach(char *spec)
|
|||
}
|
||||
|
||||
c = devattach('X', spec);
|
||||
lb = &loopbacks[dev];
|
||||
if(waserror()){
|
||||
chanfree(c);
|
||||
nexterror();
|
||||
}
|
||||
|
||||
lb = &loopbacks[dev];
|
||||
qlock(lb);
|
||||
if(waserror()){
|
||||
lb->ref--;
|
||||
|
@ -168,6 +172,8 @@ loopbackattach(char *spec)
|
|||
poperror();
|
||||
qunlock(lb);
|
||||
|
||||
poperror();
|
||||
|
||||
mkqid(&c->qid, QID(0, Qtopdir), 0, QTDIR);
|
||||
c->aux = lb;
|
||||
c->dev = dev;
|
||||
|
|
Loading…
Reference in a new issue