commit 9f232d69b56a8b619c6e11f859b1605cf26bc6c6
parent 510535e7bb10063b48a133af2e4d29b806be2f2e
Author: Anselm R. Garbe <garbeam@wmii.de>
Date: Sat, 4 Feb 2006 19:39:05 +0200
fixed fs access issues on mkqid for /new namespace
Diffstat:
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/cmd/wm/fs.c b/cmd/wm/fs.c
@@ -264,13 +264,15 @@ mkqid(Qid *dir, char *wname, Qid *new)
break;
case Darea:
fprintf(stderr, "mkqid(): %s\n", "Darea");
- if(!npage)
+ if(!npage || dpg >= npage)
return -1;
new->type = IXP_QTDIR;
if(!strncmp(wname, "new", 4))
new->path = mkqpath(Darea, dpgid, NEW_OBJ, 0);
else if(!strncmp(wname, "sel", 4)) {
Page *p = page[dpg];
+ if(!p->narea)
+ return -1;
new->path = mkqpath(Darea, dpgid, p->area[p->sel]->id, 0);
}
else {
@@ -286,6 +288,8 @@ mkqid(Qid *dir, char *wname, Qid *new)
new->type = IXP_QTDIR;
if(!strncmp(wname, "sel", 4)) {
Area *a = page[dpg]->area[darea];
+ if(!a->nclient)
+ return -1;
new->path = mkqpath(Dclient, dpgid, daid, a->client[a->sel]->id);
}
else {