diff options
| -rw-r--r-- | sys/src/9/port/devloopback.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/src/9/port/devloopback.c b/sys/src/9/port/devloopback.c index d3a64932b..cc51a1bf3 100644 --- a/sys/src/9/port/devloopback.c +++ b/sys/src/9/port/devloopback.c @@ -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; |
