diff options
Diffstat (limited to 'security/selinux/ss/services.c')
| -rw-r--r-- | security/selinux/ss/services.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c index 1de60ce90d9..9ea2feca3cd 100644 --- a/security/selinux/ss/services.c +++ b/security/selinux/ss/services.c @@ -50,6 +50,7 @@  #include <linux/audit.h>  #include <linux/mutex.h>  #include <linux/selinux.h> +#include <linux/flex_array.h>  #include <net/netlabel.h>  #include "flask.h" @@ -626,8 +627,10 @@ static void context_struct_compute_av(struct context *scontext,  	 */  	avkey.target_class = tclass;  	avkey.specified = AVTAB_AV; -	sattr = &policydb.type_attr_map[scontext->type - 1]; -	tattr = &policydb.type_attr_map[tcontext->type - 1]; +	sattr = flex_array_get(policydb.type_attr_map_array, scontext->type - 1); +	BUG_ON(!sattr); +	tattr = flex_array_get(policydb.type_attr_map_array, tcontext->type - 1); +	BUG_ON(!tattr);  	ebitmap_for_each_positive_bit(sattr, snode, i) {  		ebitmap_for_each_positive_bit(tattr, tnode, j) {  			avkey.source_type = i + 1;  | 
