u32 buf[3], len;
__le32 buf[3]; u32 len;
static int type_read(struct policydb *p, struct hashtab *h, void *fp){	char *key = NULL;	struct type_datum *typdatum;	int rc;	u32 buf[3], len;	typdatum = kmalloc(sizeof(*typdatum),GFP_KERNEL);	if (!typdatum) {		rc = -ENOMEM;		return rc;	}	memset(typdatum, 0, sizeof(*typdatum));	rc = next_entry(buf, fp, sizeof buf);	if (rc < 0)		goto bad;	len = le32_to_cpu(buf[0]);	typdatum->value = le32_to_cpu(buf[1]);	typdatum->primary = le32_to_cpu(buf[2]);	key = kmalloc(len + 1,GFP_KERNEL);	if (!key) {		rc = -ENOMEM;		goto bad;	}	rc = next_entry(key, fp, len);	if (rc < 0)		goto bad;	key[len] = 0;	rc = hashtab_insert(h, key, typdatum);	if (rc)		goto bad;out:	return rc;bad:	type_destroy(key, typdatum, NULL);	goto out;}