X-Git-Url: https://git.ucc.asn.au/?p=tpg%2Facess2.git;a=blobdiff_plain;f=KernelLand%2FKernel%2Fvfs%2Facls.c;fp=KernelLand%2FKernel%2Fvfs%2Facls.c;h=f8d48608a16d707cbcd3b2c98fed2178365aab2f;hp=7ae50c2fd34f4dd94a4523588931c3c3a6a8196d;hb=86b0974b33759726b99f8940900a88e395247460;hpb=6a28fd66345b484f9dfa5dba869888becdaf7112 diff --git a/KernelLand/Kernel/vfs/acls.c b/KernelLand/Kernel/vfs/acls.c index 7ae50c2f..f8d48608 100644 --- a/KernelLand/Kernel/vfs/acls.c +++ b/KernelLand/Kernel/vfs/acls.c @@ -9,21 +9,20 @@ Uint VFS_int_CheckACLs(tVFS_ACL *ACLs, int Num, int bDeny, Uint Perms, tUID UID, tGID GID); // === GLOBALS === -tVFS_ACL gVFS_ACL_EveryoneRWX = { {1,-1}, {0,VFS_PERM_ALL} }; -tVFS_ACL gVFS_ACL_EveryoneRW = { {1,-1}, {0,VFS_PERM_ALL^VFS_PERM_EXEC} }; -tVFS_ACL gVFS_ACL_EveryoneRX = { {1,-1}, {0,VFS_PERM_READ|VFS_PERM_EXEC} }; -tVFS_ACL gVFS_ACL_EveryoneRO = { {1,-1}, {0,VFS_PERM_READ} }; +tVFS_ACL gVFS_ACL_EveryoneRWX = { VFS_GROUP_ANY, {0,VFS_PERM_ALL} }; +tVFS_ACL gVFS_ACL_EveryoneRW = { VFS_GROUP_ANY, {0,VFS_PERM_ALL^VFS_PERM_EXEC} }; +tVFS_ACL gVFS_ACL_EveryoneRX = { VFS_GROUP_ANY, {0,VFS_PERM_READ|VFS_PERM_EXEC} }; +tVFS_ACL gVFS_ACL_EveryoneRO = { VFS_GROUP_ANY, {0,VFS_PERM_READ} }; // === CODE === Uint VFS_int_CheckACLs(tVFS_ACL *ACLs, int Num, int bDeny, Uint Perms, tUID UID, tGID GID) { - int i; - for(i = 0; i < Num; i ++ ) + for(int i = 0; i < Num; i ++ ) { if(ACLs[i].Perm.Inv) continue; // Ignore ALLOWs // Check if the entry applies to this case - if(ACLs[i].Ent.ID != 0x7FFFFFFF) + if(ACLs[i].Ent.ID != VFS_ACLENT_ALL) { if(!ACLs[i].Ent.Group) { if(ACLs[i].Ent.ID != UID) continue; @@ -95,7 +94,7 @@ int VFS_GetACL(int FD, tVFS_ACL *Dest) // Root can do anything if(Dest->Ent.Group == 0 && Dest->Ent.ID == 0) { Dest->Perm.Inv = 0; - Dest->Perm.Perms = -1; + Dest->Perm.Perms = VFS_PERM_ALL; return 1; } @@ -149,7 +148,7 @@ tVFS_ACL *VFS_UnixToAcessACL(Uint Mode, Uint Owner, Uint Group) if(Mode & 0010) ret[1].Perm.Perms |= VFS_PERM_EXEC; // Global - ret[2].Ent.Group = 1; ret[2].Ent.ID = -1; + ret[2].Ent.Group = 1; ret[2].Ent.ID = VFS_ACLENT_ALL; ret[2].Perm.Inv = 0; ret[2].Perm.Perms = 0; if(Mode & 0004) ret[2].Perm.Perms |= VFS_PERM_READ; if(Mode & 0002) ret[2].Perm.Perms |= VFS_PERM_WRITE;