summaryrefslogtreecommitdiff
path: root/sys/src/libdraw
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2020-05-02 17:05:17 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2020-05-02 17:05:17 +0200
commit7ff6ea0f70307d4b82e6df69eb1310a6e27aa4ad (patch)
treebea4316d0ffcb0ffc4a5e948426a25750d9dbfd9 /sys/src/libdraw
parent19cc46bc5ee1dd43537c4094d19d8da778b72bce (diff)
libdraw: fix mount() error handling in newwindow()
Diffstat (limited to 'sys/src/libdraw')
-rw-r--r--sys/src/libdraw/newwindow.c13
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;
}