avd->auditdeny &= avtab_auditdeny(&node->datum); if ( (__u32) (AVTAB_AUDITALLOW|AVTAB_ENABLED) == (node->datum.specified & (AVTAB_AUDITALLOW|AVTAB_ENABLED))) avd->auditallow |= avtab_auditallow(&node->datum); 
avd->auditdeny &= node->datum.data; if ( (u16) (AVTAB_AUDITALLOW|AVTAB_ENABLED) == (node->key.specified & (AVTAB_AUDITALLOW|AVTAB_ENABLED))) avd->auditallow |= node->datum.data; 
void cond_compute_av(struct avtab *ctab, struct avtab_key *key, struct av_decision *avd){	struct avtab_node *node;	if(!ctab || !key || !avd)		return;	for(node = avtab_search_node(ctab, key, AVTAB_AV); node != NULL;				node = avtab_search_node_next(node, AVTAB_AV)) {		if ( (__u32) (AVTAB_ALLOWED|AVTAB_ENABLED) ==		     (node->datum.specified & (AVTAB_ALLOWED|AVTAB_ENABLED)))			avd->allowed |= avtab_allowed(&node->datum);		if ( (__u32) (AVTAB_AUDITDENY|AVTAB_ENABLED) ==		     (node->datum.specified & (AVTAB_AUDITDENY|AVTAB_ENABLED)))			/* Since a '0' in an auditdeny mask represents a			 * permission we do NOT want to audit (dontaudit), we use			 * the '&' operand to ensure that all '0's in the mask			 * are retained (much unlike the allow and auditallow cases).			 */			avd->auditdeny &= avtab_auditdeny(&node->datum);		if ( (__u32) (AVTAB_AUDITALLOW|AVTAB_ENABLED) ==		     (node->datum.specified & (AVTAB_AUDITALLOW|AVTAB_ENABLED)))			avd->auditallow |= avtab_auditallow(&node->datum);	}	return;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/782ebb992ec20b5afdd5786ee8c2f1b58b631f24/conditional.c/buggy/security/selinux/ss/conditional.c