if (avtab_read_item(fp, &avdatum, &avkey)) { rc = -EINVAL; goto bad; } rc = avtab_insert(a, &avkey, &avdatum); 
rc = avtab_read_item(fp,vers, a, avtab_insertf, NULL); 
int avtab_read(struct avtab *a, void *fp, u32 config){	int rc;	struct avtab_key avkey;	struct avtab_datum avdatum;	u32 buf[1];	u32 nel, i;	rc = next_entry(buf, fp, sizeof(u32));	if (rc < 0) {		printk(KERN_ERR "security: avtab: truncated table\n");		goto bad;	}	nel = le32_to_cpu(buf[0]);	if (!nel) {		printk(KERN_ERR "security: avtab: table is empty\n");		rc = -EINVAL;		goto bad;	}	for (i = 0; i < nel; i++) {		if (avtab_read_item(fp, &avdatum, &avkey)) {			rc = -EINVAL;			goto bad;		}		rc = avtab_insert(a, &avkey, &avdatum);		if (rc) {			if (rc == -ENOMEM)				printk(KERN_ERR "security: avtab: out of memory\n");			if (rc == -EEXIST)				printk(KERN_ERR "security: avtab: duplicate entry\n");			goto bad;		}	}	rc = 0;out:	return rc;bad:	avtab_destroy(a);	goto out;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/782ebb992ec20b5afdd5786ee8c2f1b58b631f24/avtab.c/clean/security/selinux/ss/avtab.c