no privileges
All checks were successful
Source release / source-package (push) Successful in 43s

This commit is contained in:
Mario Fetka
2026-05-25 13:43:38 +02:00
parent 2c21eb77fd
commit 1625da7cb6

View File

@@ -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)) {}