mirror of
https://github.com/SELinuxProject/selinux
synced 2025-04-25 20:28:04 +00:00
libsepol: Only call role_fix_callback for base.p_roles during expansion.
expand_role_attributes() would merge the sub role attribute's roles ebitmap into that of the parent, then clear it off from the parent's roles ebitmap. This supports the assertion in role_fix_callback() that any role attribute's roles ebitmap contains just regular roles. expand_role_attribute() works on base.p_roles table but not any block/decl's p_roles table, so the above assertion in role_fix_callback could fail when it is called for block/decl and some role attribute is added into another. Since the effect of get_local_role() would have been complemented by the populate_roleattributes() at the end of the link phase, there is no needs(and wrong) to call role_fix_callback() for block/decl in the expand phase. Signed-off-by: Harry Ciao <qingtao.cao@windriver.com> Signed-off-by: Eric Paris <eparis@redhat.com> Acked-by: Dan Walsh <dwalsh@redhat.com>
This commit is contained in:
parent
e1ae7b43f1
commit
dbc9a61819
@ -2835,9 +2835,6 @@ int expand_module(sepol_handle_t * handle,
|
|||||||
if (hashtab_map
|
if (hashtab_map
|
||||||
(decl->p_roles.table, role_copy_callback, &state))
|
(decl->p_roles.table, role_copy_callback, &state))
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
if (hashtab_map
|
|
||||||
(decl->p_roles.table, role_fix_callback, &state))
|
|
||||||
goto cleanup;
|
|
||||||
|
|
||||||
/* copy users */
|
/* copy users */
|
||||||
if (hashtab_map
|
if (hashtab_map
|
||||||
|
Loading…
Reference in New Issue
Block a user