Jelajahi Sumber

[PATCH] selinux: Fix NULL deref in policydb_destroy

This patch fixes a possible NULL dereference in policydb_destroy, where
p->type_attr_map can be NULL if policydb_destroy is called to clean up a
partially loaded policy upon an error during policy load.  Please apply.

Signed-off-by: Stephen Smalley <sds@tycho.nsa.gov>
Acked-by: James Morris <jmorris@namei.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Stephen Smalley 19 tahun lalu
induk
melakukan
282c1f5eba
1 mengubah file dengan 4 tambahan dan 2 penghapusan
  1. 4 2
      security/selinux/ss/policydb.c

+ 4 - 2
security/selinux/ss/policydb.c

@@ -650,8 +650,10 @@ void policydb_destroy(struct policydb *p)
 	}
 	}
 	if (lrt) kfree(lrt);
 	if (lrt) kfree(lrt);
 
 
-	for (i = 0; i < p->p_types.nprim; i++)
-		ebitmap_destroy(&p->type_attr_map[i]);
+	if (p->type_attr_map) {
+		for (i = 0; i < p->p_types.nprim; i++)
+			ebitmap_destroy(&p->type_attr_map[i]);
+	}
 	kfree(p->type_attr_map);
 	kfree(p->type_attr_map);
 
 
 	return;
 	return;