|
@@ -178,10 +178,9 @@ static int roles_init(struct policydb *p)
|
|
|
int rc;
|
|
|
struct role_datum *role;
|
|
|
|
|
|
- rc = -ENOMEM;
|
|
|
role = kzalloc(sizeof(*role), GFP_KERNEL);
|
|
|
if (!role)
|
|
|
- goto out;
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
rc = -EINVAL;
|
|
|
role->value = ++p->p_roles.nprim;
|
|
@@ -540,23 +539,23 @@ static int policydb_index(struct policydb *p)
|
|
|
#endif
|
|
|
|
|
|
rc = -ENOMEM;
|
|
|
- p->class_val_to_struct =
|
|
|
- kzalloc(p->p_classes.nprim * sizeof(*(p->class_val_to_struct)),
|
|
|
- GFP_KERNEL);
|
|
|
+ p->class_val_to_struct = kcalloc(p->p_classes.nprim,
|
|
|
+ sizeof(*p->class_val_to_struct),
|
|
|
+ GFP_KERNEL);
|
|
|
if (!p->class_val_to_struct)
|
|
|
goto out;
|
|
|
|
|
|
rc = -ENOMEM;
|
|
|
- p->role_val_to_struct =
|
|
|
- kzalloc(p->p_roles.nprim * sizeof(*(p->role_val_to_struct)),
|
|
|
- GFP_KERNEL);
|
|
|
+ p->role_val_to_struct = kcalloc(p->p_roles.nprim,
|
|
|
+ sizeof(*p->role_val_to_struct),
|
|
|
+ GFP_KERNEL);
|
|
|
if (!p->role_val_to_struct)
|
|
|
goto out;
|
|
|
|
|
|
rc = -ENOMEM;
|
|
|
- p->user_val_to_struct =
|
|
|
- kzalloc(p->p_users.nprim * sizeof(*(p->user_val_to_struct)),
|
|
|
- GFP_KERNEL);
|
|
|
+ p->user_val_to_struct = kcalloc(p->p_users.nprim,
|
|
|
+ sizeof(*p->user_val_to_struct),
|
|
|
+ GFP_KERNEL);
|
|
|
if (!p->user_val_to_struct)
|
|
|
goto out;
|
|
|
|
|
@@ -880,8 +879,6 @@ void policydb_destroy(struct policydb *p)
|
|
|
ebitmap_destroy(&p->filename_trans_ttypes);
|
|
|
ebitmap_destroy(&p->policycaps);
|
|
|
ebitmap_destroy(&p->permissive_map);
|
|
|
-
|
|
|
- return;
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -1120,10 +1117,9 @@ static int perm_read(struct policydb *p, struct hashtab *h, void *fp)
|
|
|
__le32 buf[2];
|
|
|
u32 len;
|
|
|
|
|
|
- rc = -ENOMEM;
|
|
|
perdatum = kzalloc(sizeof(*perdatum), GFP_KERNEL);
|
|
|
if (!perdatum)
|
|
|
- goto bad;
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
rc = next_entry(buf, fp, sizeof buf);
|
|
|
if (rc)
|
|
@@ -1154,10 +1150,9 @@ static int common_read(struct policydb *p, struct hashtab *h, void *fp)
|
|
|
u32 len, nel;
|
|
|
int i, rc;
|
|
|
|
|
|
- rc = -ENOMEM;
|
|
|
comdatum = kzalloc(sizeof(*comdatum), GFP_KERNEL);
|
|
|
if (!comdatum)
|
|
|
- goto bad;
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
rc = next_entry(buf, fp, sizeof buf);
|
|
|
if (rc)
|
|
@@ -1320,10 +1315,9 @@ static int class_read(struct policydb *p, struct hashtab *h, void *fp)
|
|
|
u32 len, len2, ncons, nel;
|
|
|
int i, rc;
|
|
|
|
|
|
- rc = -ENOMEM;
|
|
|
cladatum = kzalloc(sizeof(*cladatum), GFP_KERNEL);
|
|
|
if (!cladatum)
|
|
|
- goto bad;
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
rc = next_entry(buf, fp, sizeof(u32)*6);
|
|
|
if (rc)
|
|
@@ -1414,10 +1408,9 @@ static int role_read(struct policydb *p, struct hashtab *h, void *fp)
|
|
|
__le32 buf[3];
|
|
|
u32 len;
|
|
|
|
|
|
- rc = -ENOMEM;
|
|
|
role = kzalloc(sizeof(*role), GFP_KERNEL);
|
|
|
if (!role)
|
|
|
- goto bad;
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
if (p->policyvers >= POLICYDB_VERSION_BOUNDARY)
|
|
|
to_read = 3;
|
|
@@ -1471,10 +1464,9 @@ static int type_read(struct policydb *p, struct hashtab *h, void *fp)
|
|
|
__le32 buf[4];
|
|
|
u32 len;
|
|
|
|
|
|
- rc = -ENOMEM;
|
|
|
typdatum = kzalloc(sizeof(*typdatum), GFP_KERNEL);
|
|
|
if (!typdatum)
|
|
|
- goto bad;
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
if (p->policyvers >= POLICYDB_VERSION_BOUNDARY)
|
|
|
to_read = 4;
|
|
@@ -1546,10 +1538,9 @@ static int user_read(struct policydb *p, struct hashtab *h, void *fp)
|
|
|
__le32 buf[3];
|
|
|
u32 len;
|
|
|
|
|
|
- rc = -ENOMEM;
|
|
|
usrdatum = kzalloc(sizeof(*usrdatum), GFP_KERNEL);
|
|
|
if (!usrdatum)
|
|
|
- goto bad;
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
if (p->policyvers >= POLICYDB_VERSION_BOUNDARY)
|
|
|
to_read = 3;
|
|
@@ -1597,10 +1588,9 @@ static int sens_read(struct policydb *p, struct hashtab *h, void *fp)
|
|
|
__le32 buf[2];
|
|
|
u32 len;
|
|
|
|
|
|
- rc = -ENOMEM;
|
|
|
levdatum = kzalloc(sizeof(*levdatum), GFP_ATOMIC);
|
|
|
if (!levdatum)
|
|
|
- goto bad;
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
rc = next_entry(buf, fp, sizeof buf);
|
|
|
if (rc)
|
|
@@ -1614,7 +1604,7 @@ static int sens_read(struct policydb *p, struct hashtab *h, void *fp)
|
|
|
goto bad;
|
|
|
|
|
|
rc = -ENOMEM;
|
|
|
- levdatum->level = kmalloc(sizeof(struct mls_level), GFP_ATOMIC);
|
|
|
+ levdatum->level = kmalloc(sizeof(*levdatum->level), GFP_ATOMIC);
|
|
|
if (!levdatum->level)
|
|
|
goto bad;
|
|
|
|
|
@@ -1639,10 +1629,9 @@ static int cat_read(struct policydb *p, struct hashtab *h, void *fp)
|
|
|
__le32 buf[3];
|
|
|
u32 len;
|
|
|
|
|
|
- rc = -ENOMEM;
|
|
|
catdatum = kzalloc(sizeof(*catdatum), GFP_ATOMIC);
|
|
|
if (!catdatum)
|
|
|
- goto bad;
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
rc = next_entry(buf, fp, sizeof buf);
|
|
|
if (rc)
|
|
@@ -1854,7 +1843,7 @@ static int range_read(struct policydb *p, void *fp)
|
|
|
|
|
|
rc = next_entry(buf, fp, sizeof(u32));
|
|
|
if (rc)
|
|
|
- goto out;
|
|
|
+ return rc;
|
|
|
|
|
|
nel = le32_to_cpu(buf[0]);
|
|
|
for (i = 0; i < nel; i++) {
|
|
@@ -1931,7 +1920,6 @@ static int filename_trans_read(struct policydb *p, void *fp)
|
|
|
nel = le32_to_cpu(buf[0]);
|
|
|
|
|
|
for (i = 0; i < nel; i++) {
|
|
|
- ft = NULL;
|
|
|
otype = NULL;
|
|
|
name = NULL;
|
|
|
|
|
@@ -2008,7 +1996,7 @@ static int genfs_read(struct policydb *p, void *fp)
|
|
|
|
|
|
rc = next_entry(buf, fp, sizeof(u32));
|
|
|
if (rc)
|
|
|
- goto out;
|
|
|
+ return rc;
|
|
|
nel = le32_to_cpu(buf[0]);
|
|
|
|
|
|
for (i = 0; i < nel; i++) {
|
|
@@ -2100,9 +2088,10 @@ static int genfs_read(struct policydb *p, void *fp)
|
|
|
}
|
|
|
rc = 0;
|
|
|
out:
|
|
|
- if (newgenfs)
|
|
|
+ if (newgenfs) {
|
|
|
kfree(newgenfs->fstype);
|
|
|
- kfree(newgenfs);
|
|
|
+ kfree(newgenfs);
|
|
|
+ }
|
|
|
ocontext_destroy(newc, OCON_FSUSE);
|
|
|
|
|
|
return rc;
|