if (lra) kfree(lra); 
kfree(lra); 
void policydb_destroy(struct policydb *p){	struct ocontext *c, *ctmp;	struct genfs *g, *gtmp;	int i;	struct role_allow *ra, *lra = NULL;	struct role_trans *tr, *ltr = NULL;	struct range_trans *rt, *lrt = NULL;	for (i = 0; i < SYM_NUM; i++) {		hashtab_map(p->symtab[i].table, destroy_f[i], NULL);		hashtab_destroy(p->symtab[i].table);	}	for (i = 0; i < SYM_NUM; i++)		kfree(p->sym_val_to_name[i]);	kfree(p->class_val_to_struct);	kfree(p->role_val_to_struct);	kfree(p->user_val_to_struct);	avtab_destroy(&p->te_avtab);	for (i = 0; i < OCON_NUM; i++) {		c = p->ocontexts[i];		while (c) {			ctmp = c;			c = c->next;			ocontext_destroy(ctmp,i);		}	}	g = p->genfs;	while (g) {		kfree(g->fstype);		c = g->head;		while (c) {			ctmp = c;			c = c->next;			ocontext_destroy(ctmp,OCON_FSUSE);		}		gtmp = g;		g = g->next;		kfree(gtmp);	}	cond_policydb_destroy(p);	for (tr = p->role_tr; tr; tr = tr->next) {		if (ltr) kfree(ltr);		ltr = tr;	}	if (ltr) kfree(ltr);	for (ra = p->role_allow; ra; ra = ra -> next) {		if (lra) kfree(lra);		lra = ra;	}	if (lra) kfree(lra);	for (rt = p->range_tr; rt; rt = rt -> next) {		if (lrt) kfree(lrt);		lrt = rt;	}	if (lrt) kfree(lrt);	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);	return;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/a7f988ba304c5f6e78f937a06d120a0097b4d351/policydb.c/buggy/security/selinux/ss/policydb.c