diff options
| author | cinap_lenrek <cinap_lenrek@felloff.net> | 2020-05-02 17:05:17 +0200 |
|---|---|---|
| committer | cinap_lenrek <cinap_lenrek@felloff.net> | 2020-05-02 17:05:17 +0200 |
| commit | 7ff6ea0f70307d4b82e6df69eb1310a6e27aa4ad (patch) | |
| tree | bea4316d0ffcb0ffc4a5e948426a25750d9dbfd9 | |
| parent | 19cc46bc5ee1dd43537c4094d19d8da778b72bce (diff) | |
| download | plan9front-7ff6ea0f70307d4b82e6df69eb1310a6e27aa4ad.tar.xz | |
libdraw: fix mount() error handling in newwindow()
| -rw-r--r-- | sys/src/libdraw/newwindow.c | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/sys/src/libdraw/newwindow.c b/sys/src/libdraw/newwindow.c index 7b385a322..2fb708bef 100644 --- a/sys/src/libdraw/newwindow.c +++ b/sys/src/libdraw/newwindow.c @@ -25,8 +25,15 @@ newwindow(char *str) snprint(buf, sizeof buf, "new %s", str); else strcpy(buf, "new"); - if(mount(fd, -1, "/mnt/wsys", MREPL, buf) < 0) - return mount(fd, -1, "/dev", MBEFORE, buf); - return bind("/mnt/wsys", "/dev", MBEFORE); + if(mount(fd, -1, "/mnt/wsys", MREPL, buf) == -1){ + if(mount(fd, -1, "/dev", MBEFORE, buf) == -1){ + close(fd); + return -1; + } + } else { + if(bind("/mnt/wsys", "/dev", MBEFORE) == -1) + return -1; + } + return 0; } |
