diff options
author | Dan Carpenter <dan.carpenter@oracle.com> | 2015-02-04 11:34:30 -0500 |
---|---|---|
committer | Paul Moore <pmoore@redhat.com> | 2015-02-04 11:34:30 -0500 |
commit | 6eb4e2b41b264f57ee02d16ee61683952945484d (patch) | |
tree | 9ab88aee868ae4213a72b880d6e2a381c665e125 /security/selinux/ss | |
parent | d5f3a5f6e7e7822df5680d4fe39bf0b6979a1535 (diff) |
SELinux: fix error code in policydb_init()
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>
Diffstat (limited to 'security/selinux/ss')
-rw-r--r-- | security/selinux/ss/policydb.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/security/selinux/ss/policydb.c b/security/selinux/ss/policydb.c index bc2a586f095c..74aa224267c1 100644 --- a/security/selinux/ss/policydb.c +++ b/security/selinux/ss/policydb.c | |||
@@ -289,12 +289,16 @@ static int policydb_init(struct policydb *p) | |||
289 | goto out; | 289 | goto out; |
290 | 290 | ||
291 | p->filename_trans = hashtab_create(filenametr_hash, filenametr_cmp, (1 << 10)); | 291 | p->filename_trans = hashtab_create(filenametr_hash, filenametr_cmp, (1 << 10)); |
292 | if (!p->filename_trans) | 292 | if (!p->filename_trans) { |
293 | rc = -ENOMEM; | ||
293 | goto out; | 294 | goto out; |
295 | } | ||
294 | 296 | ||
295 | p->range_tr = hashtab_create(rangetr_hash, rangetr_cmp, 256); | 297 | p->range_tr = hashtab_create(rangetr_hash, rangetr_cmp, 256); |
296 | if (!p->range_tr) | 298 | if (!p->range_tr) { |
299 | rc = -ENOMEM; | ||
297 | goto out; | 300 | goto out; |
301 | } | ||
298 | 302 | ||
299 | ebitmap_init(&p->filename_trans_ttypes); | 303 | ebitmap_init(&p->filename_trans_ttypes); |
300 | ebitmap_init(&p->policycaps); | 304 | ebitmap_init(&p->policycaps); |