mirror of
https://codeberg.org/TicklishHoneyBee/CLIte.git
synced 2026-03-11 09:04:37 +00:00
add missing permissions check in vfs mk*()
This commit is contained in:
parent
cc03c96982
commit
2dcce5b399
1 changed files with 17 additions and 0 deletions
|
|
@ -1624,6 +1624,17 @@ clite.vfs = {
|
|||
return true;
|
||||
return false;
|
||||
}
|
||||
function checkCanWrite(uid,node) {
|
||||
if (!uid)
|
||||
return true;
|
||||
if (node.perms[8] == 'w')
|
||||
return true;
|
||||
if (clite.user.checkGID(uid,node.gid) && node.perms[5] == 'w')
|
||||
return true;
|
||||
if (node.uid == uid && node.perms[2] == 'w')
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
function mkNode() {
|
||||
var fsnode = {
|
||||
name: '',
|
||||
|
|
@ -1697,6 +1708,8 @@ clite.vfs = {
|
|||
var parent = vfsdata.api.getNode(uid,dir);
|
||||
if (!parent || !parent.data.isdir)
|
||||
return false;
|
||||
if (!checkCanWrite(uid,parent))
|
||||
return false;
|
||||
var n = mkNode();
|
||||
n.name = name;
|
||||
n.data.parent = parent;
|
||||
|
|
@ -1719,6 +1732,8 @@ clite.vfs = {
|
|||
var parent = vfsdata.api.getNode(0,dir);
|
||||
if (!parent || !parent.data.isdir)
|
||||
return false;
|
||||
if (!checkCanWrite(uid,parent))
|
||||
return false;
|
||||
var n = mkNode();
|
||||
n.name = name;
|
||||
n.data.parent = parent;
|
||||
|
|
@ -1740,6 +1755,8 @@ clite.vfs = {
|
|||
var parent = vfsdata.api.getNode(uid,dir);
|
||||
if (!parent || !parent.data.isdir)
|
||||
return false;
|
||||
if (!checkCanWrite(uid,parent))
|
||||
return false;
|
||||
var n = mkNode();
|
||||
n.name = name;
|
||||
n.data.parent = parent;
|
||||
|
|
|
|||
Loading…
Reference in a new issue