devaoe: fix dotdot walk in devlinkdir, make perms consistent
This commit is contained in:
parent
a2623fd82a
commit
8c70c09bfd
1 changed files with 10 additions and 10 deletions
|
@ -828,7 +828,7 @@ unitgen(Chan *c, ulong type, Dir *dp)
|
||||||
Qid q;
|
Qid q;
|
||||||
|
|
||||||
d = unit2dev(UNIT(c->qid));
|
d = unit2dev(UNIT(c->qid));
|
||||||
perm = 0644;
|
perm = 0664;
|
||||||
size = 0;
|
size = 0;
|
||||||
vers = d->vers;
|
vers = d->vers;
|
||||||
t = QTFILE;
|
t = QTFILE;
|
||||||
|
@ -841,7 +841,7 @@ unitgen(Chan *c, ulong type, Dir *dp)
|
||||||
break;
|
break;
|
||||||
case Qdata:
|
case Qdata:
|
||||||
p = "data";
|
p = "data";
|
||||||
perm = 0640;
|
perm = 0660;
|
||||||
if(UP(d))
|
if(UP(d))
|
||||||
size = d->bsize;
|
size = d->bsize;
|
||||||
break;
|
break;
|
||||||
|
@ -881,7 +881,7 @@ topgen(Chan *c, ulong type, Dir *d)
|
||||||
return -1;
|
return -1;
|
||||||
case Qtopctl:
|
case Qtopctl:
|
||||||
p = "ctl";
|
p = "ctl";
|
||||||
perm = 0644;
|
perm = 0664;
|
||||||
break;
|
break;
|
||||||
case Qtoplog:
|
case Qtoplog:
|
||||||
p = "log";
|
p = "log";
|
||||||
|
@ -949,24 +949,24 @@ aoegen(Chan *c, char *, Dirtab *, int, int s, Dir *dp)
|
||||||
return unitgen(c, TYPE(c->qid), dp);
|
return unitgen(c, TYPE(c->qid), dp);
|
||||||
case Qdevlinkdir:
|
case Qdevlinkdir:
|
||||||
i = UNIT(c->qid);
|
i = UNIT(c->qid);
|
||||||
if(s == DEVDOTDOT){
|
|
||||||
mkqid(&q, QID(i, Qunitdir), 0, QTDIR);
|
|
||||||
devdir(c, q, "devlink", 0, eve, 0555, dp);
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
if(i >= Maxunits || i >= units.ref)
|
if(i >= Maxunits || i >= units.ref)
|
||||||
return -1;
|
return -1;
|
||||||
d = unit2dev(i);
|
d = unit2dev(i);
|
||||||
|
if(s == DEVDOTDOT){
|
||||||
|
mkqid(&q, QID(i, Qunitdir), 0, QTDIR);
|
||||||
|
devdir(c, q, unitname(d), 0, eve, 0555, dp);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
if(s >= d->ndl)
|
if(s >= d->ndl)
|
||||||
return -1;
|
return -1;
|
||||||
uprint("%d", s);
|
uprint("%d", s);
|
||||||
mkqid(&q, Q3(s, i, Qdevlink), 0, QTFILE);
|
mkqid(&q, Q3(s, i, Qdevlink), 0, QTFILE);
|
||||||
devdir(c, q, up->genbuf, 0, eve, 0755, dp);
|
devdir(c, q, up->genbuf, 0, eve, 0444, dp);
|
||||||
return 1;
|
return 1;
|
||||||
case Qdevlink:
|
case Qdevlink:
|
||||||
uprint("%d", s);
|
uprint("%d", s);
|
||||||
mkqid(&q, Q3(s, UNIT(c->qid), Qdevlink), 0, QTFILE);
|
mkqid(&q, Q3(s, UNIT(c->qid), Qdevlink), 0, QTFILE);
|
||||||
devdir(c, q, up->genbuf, 0, eve, 0755, dp);
|
devdir(c, q, up->genbuf, 0, eve, 0444, dp);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue