diff options
| -rw-r--r-- | security/selinux/ss/policydb.c | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/security/selinux/ss/policydb.c b/security/selinux/ss/policydb.c index 6b576e588725..daecdfb15a9c 100644 --- a/security/selinux/ss/policydb.c +++ b/security/selinux/ss/policydb.c | |||
| @@ -828,9 +828,11 @@ void policydb_destroy(struct policydb *p) | |||
| 828 | hashtab_map(p->range_tr, range_tr_destroy, NULL); | 828 | hashtab_map(p->range_tr, range_tr_destroy, NULL); |
| 829 | hashtab_destroy(p->range_tr); | 829 | hashtab_destroy(p->range_tr); |
| 830 | 830 | ||
| 831 | for (i = 0; i < p->p_types.nprim; i++) | 831 | if (p->type_attr_map_array) { |
| 832 | ebitmap_destroy(&p->type_attr_map_array[i]); | 832 | for (i = 0; i < p->p_types.nprim; i++) |
| 833 | kvfree(p->type_attr_map_array); | 833 | ebitmap_destroy(&p->type_attr_map_array[i]); |
| 834 | kvfree(p->type_attr_map_array); | ||
| 835 | } | ||
| 834 | 836 | ||
| 835 | ebitmap_destroy(&p->filename_trans_ttypes); | 837 | ebitmap_destroy(&p->filename_trans_ttypes); |
| 836 | ebitmap_destroy(&p->policycaps); | 838 | ebitmap_destroy(&p->policycaps); |
| @@ -2496,10 +2498,13 @@ int policydb_read(struct policydb *p, void *fp) | |||
| 2496 | if (!p->type_attr_map_array) | 2498 | if (!p->type_attr_map_array) |
| 2497 | goto bad; | 2499 | goto bad; |
| 2498 | 2500 | ||
| 2501 | /* just in case ebitmap_init() becomes more than just a memset(0): */ | ||
| 2502 | for (i = 0; i < p->p_types.nprim; i++) | ||
| 2503 | ebitmap_init(&p->type_attr_map_array[i]); | ||
| 2504 | |||
| 2499 | for (i = 0; i < p->p_types.nprim; i++) { | 2505 | for (i = 0; i < p->p_types.nprim; i++) { |
| 2500 | struct ebitmap *e = &p->type_attr_map_array[i]; | 2506 | struct ebitmap *e = &p->type_attr_map_array[i]; |
| 2501 | 2507 | ||
| 2502 | ebitmap_init(e); | ||
| 2503 | if (p->policyvers >= POLICYDB_VERSION_AVTAB) { | 2508 | if (p->policyvers >= POLICYDB_VERSION_AVTAB) { |
| 2504 | rc = ebitmap_read(e, fp); | 2509 | rc = ebitmap_read(e, fp); |
| 2505 | if (rc) | 2510 | if (rc) |
