This commit is contained in:
@@ -712,7 +712,15 @@ int tru_set_inherited_mask(int volume, uint8 *unixname,
|
||||
if ( (voloptions & VOL_OPTION_TRUSTEES) &&
|
||||
( (tru_get_eff_rights(volume, unixname, stb) & TRUSTEE_A)
|
||||
|| (act_id_flags&1)) ) {
|
||||
FILE_TRUSTEE_NODE *tr=find_trustee_node(volume, stb->st_dev, stb->st_ino);
|
||||
/*
|
||||
* Build/create the trustee cache entry before writing the IRM.
|
||||
* tru_get_eff_rights() normally does this indirectly, but for the real
|
||||
* SUPERVISOR object get_eff_rights_by_trustees() returns MAX_TRUSTEE_MASK
|
||||
* directly and does not build a FILE_TRUSTEE_NODE. Using only
|
||||
* find_trustee_node() therefore made NCP 22/4 fail with no privileges
|
||||
* for SUPERVISOR on otherwise untouched directories.
|
||||
*/
|
||||
FILE_TRUSTEE_NODE *tr=find_build_trustee_node(volume, unixname, stb);
|
||||
if (tr && (!(tr->mode_flags&0x1e) || !act_uid)) {
|
||||
int result;
|
||||
if (seteuid(0)) {}
|
||||
|
||||
Reference in New Issue
Block a user