SELinux: fix error code in policydb_init()
authorDan Carpenter <dan.carpenter@oracle.com>
Wed, 4 Feb 2015 16:34:30 +0000 (11:34 -0500)
committerPaul Moore <pmoore@redhat.com>
Wed, 4 Feb 2015 16:34:30 +0000 (11:34 -0500)
If hashtab_create() returns a NULL pointer then we should return -ENOMEM
but instead the current code returns success.

Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
Acked-by: Stephen Smalley <sds@tycho.nsa.gov>
Signed-off-by: Paul Moore <pmoore@redhat.com>
security/selinux/ss/policydb.c

index bc2a586..74aa224 100644 (file)
@@ -289,12 +289,16 @@ static int policydb_init(struct policydb *p)
                goto out;
 
        p->filename_trans = hashtab_create(filenametr_hash, filenametr_cmp, (1 << 10));
-       if (!p->filename_trans)
+       if (!p->filename_trans) {
+               rc = -ENOMEM;
                goto out;
+       }
 
        p->range_tr = hashtab_create(rangetr_hash, rangetr_cmp, 256);
-       if (!p->range_tr)
+       if (!p->range_tr) {
+               rc = -ENOMEM;
                goto out;
+       }
 
        ebitmap_init(&p->filename_trans_ttypes);
        ebitmap_init(&p->policycaps);