]> err.no Git - linux-2.6/blobdiff - security/selinux/ss/conditional.c
Merge branch 'fixes' of master.kernel.org:/pub/scm/linux/kernel/git/linville/wireless-2.6
[linux-2.6] / security / selinux / ss / conditional.c
index d2737edba5414598a5be034e652e66c52990b6de..50ad85d4b77c88c3ab61828ba2161bce8ad8315f 100644 (file)
@@ -362,7 +362,8 @@ static int cond_read_av_list(struct policydb *p, void *fp, struct cond_av_list *
        data.head = NULL;
        data.tail = NULL;
        for (i = 0; i < len; i++) {
-               rc = avtab_read_item(fp, p->policyvers, &p->te_cond_avtab, cond_insertf, &data);
+               rc = avtab_read_item(&p->te_cond_avtab, fp, p, cond_insertf,
+                                    &data);
                if (rc)
                        return rc;
 
@@ -456,6 +457,10 @@ int cond_read_list(struct policydb *p, void *fp)
 
        len = le32_to_cpu(buf[0]);
 
+       rc = avtab_alloc(&(p->te_cond_avtab), p->te_avtab.nel);
+       if (rc)
+               goto err;
+
        for (i = 0; i < len; i++) {
                node = kzalloc(sizeof(struct cond_node), GFP_KERNEL);
                if (!node)