projects/linux·commit ddccef3b

[PATCH] selinux: fix memory leak

ddccef3b · Darrel Goeddel <[email protected]> · 2006-07-30 03:03:17 -07:00

This patch fixes a memory leak when a policydb structure is destroyed.

Signed-off-by: Darrel Goeddel <[email protected]>
Signed-off-by: Stephen Smalley <[email protected]>
Acked-by: James Morris <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
Commit
ddccef3b5ec906ff181171e8ffad4fcb996792fd
Parents
d1bbf14f

Changes

1 files changed · +10 −2

FileStatusAddDelContent
security/selinux/ss/policydb.cmodified+10−2View file

security/selinux/ss/policydb.c

View file
diff --git a/security/selinux/ss/policydb.c b/security/selinux/ss/policydb.c
index 0111990..f03960e 100644
--- a/security/selinux/ss/policydb.c
+++ b/security/selinux/ss/policydb.c
@@ -644,10 +644,18 @@ void policydb_destroy(struct policydb *p)
kfree(lra);
for (rt = p->range_tr; rt; rt = rt -> next) {
- kfree(lrt);
+ if (lrt) {
+ ebitmap_destroy(&lrt->range.level[0].cat);
+ ebitmap_destroy(&lrt->range.level[1].cat);
+ kfree(lrt);
+ }
lrt = rt;
}
- kfree(lrt);
+ if (lrt) {
+ ebitmap_destroy(&lrt->range.level[0].cat);
+ ebitmap_destroy(&lrt->range.level[1].cat);
+ kfree(lrt);
+ }
if (p->type_attr_map) {
for (i = 0; i < p->p_types.nprim; i++)