mirror of
https://github.com/topjohnwu/selinux.git
synced 2024-12-11 13:26:01 +00:00
libsepol/cil: fix NULL pointer dereference when copying classpermission/set
When copying classpermission or classpermissionset statements, we did not properly initialize the new structs. This would cause a segfault when one used either of these statements inside a tunableif block, e.g. (tunableif foo (true (classpermissionset cps (cls (perm1 perm2)))) (false (classpermissionset cps (cls (perm1))))) Reported-by: Dominick Grift <dac.override@gmail.com> Signed-off-by: Steve Lawrence <slawrence@tresys.com> Signed-off-by: James Carter <jwcart2@tycho.nsa.gov>
This commit is contained in:
parent
8f13ce624d
commit
1fe89056ea
@ -282,6 +282,8 @@ int cil_copy_classpermission(__attribute__((unused)) struct cil_db *db, void *da
|
||||
}
|
||||
}
|
||||
|
||||
cil_classpermission_init(&new);
|
||||
|
||||
cil_copy_classperms_list(orig->classperms, &new->classperms);
|
||||
|
||||
*copy = new;
|
||||
@ -294,6 +296,8 @@ int cil_copy_classpermissionset(__attribute__((unused)) struct cil_db *db, void
|
||||
struct cil_classpermissionset *orig = data;
|
||||
struct cil_classpermissionset *new = NULL;
|
||||
|
||||
cil_classpermissionset_init(&new);
|
||||
|
||||
new->set_str = orig->set_str;
|
||||
|
||||
cil_copy_classperms_list(orig->classperms, &new->classperms);
|
||||
|
Loading…
Reference in New Issue
Block a user