diff options
Diffstat (limited to 'security/selinux/ss')
-rw-r--r-- | security/selinux/ss/policydb.c | 12 | ||||
-rw-r--r-- | security/selinux/ss/services.c | 4 |
2 files changed, 12 insertions, 4 deletions
diff --git a/security/selinux/ss/policydb.c b/security/selinux/ss/policydb.c index 0111990ba837..f03960e697ce 100644 --- a/security/selinux/ss/policydb.c +++ b/security/selinux/ss/policydb.c | |||
@@ -644,10 +644,18 @@ void policydb_destroy(struct policydb *p) | |||
644 | kfree(lra); | 644 | kfree(lra); |
645 | 645 | ||
646 | for (rt = p->range_tr; rt; rt = rt -> next) { | 646 | for (rt = p->range_tr; rt; rt = rt -> next) { |
647 | kfree(lrt); | 647 | if (lrt) { |
648 | ebitmap_destroy(&lrt->range.level[0].cat); | ||
649 | ebitmap_destroy(&lrt->range.level[1].cat); | ||
650 | kfree(lrt); | ||
651 | } | ||
648 | lrt = rt; | 652 | lrt = rt; |
649 | } | 653 | } |
650 | kfree(lrt); | 654 | if (lrt) { |
655 | ebitmap_destroy(&lrt->range.level[0].cat); | ||
656 | ebitmap_destroy(&lrt->range.level[1].cat); | ||
657 | kfree(lrt); | ||
658 | } | ||
651 | 659 | ||
652 | if (p->type_attr_map) { | 660 | if (p->type_attr_map) { |
653 | for (i = 0; i < p->p_types.nprim; i++) | 661 | for (i = 0; i < p->p_types.nprim; i++) |
diff --git a/security/selinux/ss/services.c b/security/selinux/ss/services.c index d2e80e62ff0c..85e429884393 100644 --- a/security/selinux/ss/services.c +++ b/security/selinux/ss/services.c | |||
@@ -833,6 +833,8 @@ static int security_compute_sid(u32 ssid, | |||
833 | goto out; | 833 | goto out; |
834 | } | 834 | } |
835 | 835 | ||
836 | context_init(&newcontext); | ||
837 | |||
836 | POLICY_RDLOCK; | 838 | POLICY_RDLOCK; |
837 | 839 | ||
838 | scontext = sidtab_search(&sidtab, ssid); | 840 | scontext = sidtab_search(&sidtab, ssid); |
@@ -850,8 +852,6 @@ static int security_compute_sid(u32 ssid, | |||
850 | goto out_unlock; | 852 | goto out_unlock; |
851 | } | 853 | } |
852 | 854 | ||
853 | context_init(&newcontext); | ||
854 | |||
855 | /* Set the user identity. */ | 855 | /* Set the user identity. */ |
856 | switch (specified) { | 856 | switch (specified) { |
857 | case AVTAB_TRANSITION: | 857 | case AVTAB_TRANSITION: |