selinux: correct the return value when loads initial sids
commit 4c156084daa8ee70978e4b150b5eb5fc7b1f15be upstream.
It should not return 0 when SID 0 is assigned to isids.
This patch fixes it.
Cc: stable@vger.kernel.org
Fixes: e3e0b582c3
("selinux: remove unused initial SIDs and improve handling")
Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com>
[PM: remove changelog from description]
Signed-off-by: Paul Moore <paul@paul-moore.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:

committed by
Greg Kroah-Hartman

parent
100f8396d1
commit
f4984f60ac
@@ -874,7 +874,7 @@ int policydb_load_isids(struct policydb *p, struct sidtab *s)
|
|||||||
rc = sidtab_init(s);
|
rc = sidtab_init(s);
|
||||||
if (rc) {
|
if (rc) {
|
||||||
pr_err("SELinux: out of memory on SID table init\n");
|
pr_err("SELinux: out of memory on SID table init\n");
|
||||||
goto out;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
||||||
head = p->ocontexts[OCON_ISID];
|
head = p->ocontexts[OCON_ISID];
|
||||||
@@ -885,7 +885,7 @@ int policydb_load_isids(struct policydb *p, struct sidtab *s)
|
|||||||
if (sid == SECSID_NULL) {
|
if (sid == SECSID_NULL) {
|
||||||
pr_err("SELinux: SID 0 was assigned a context.\n");
|
pr_err("SELinux: SID 0 was assigned a context.\n");
|
||||||
sidtab_destroy(s);
|
sidtab_destroy(s);
|
||||||
goto out;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Ignore initial SIDs unused by this kernel. */
|
/* Ignore initial SIDs unused by this kernel. */
|
||||||
@@ -897,12 +897,10 @@ int policydb_load_isids(struct policydb *p, struct sidtab *s)
|
|||||||
pr_err("SELinux: unable to load initial SID %s.\n",
|
pr_err("SELinux: unable to load initial SID %s.\n",
|
||||||
name);
|
name);
|
||||||
sidtab_destroy(s);
|
sidtab_destroy(s);
|
||||||
goto out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
rc = 0;
|
|
||||||
out:
|
|
||||||
return rc;
|
return rc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int policydb_class_isvalid(struct policydb *p, unsigned int class)
|
int policydb_class_isvalid(struct policydb *p, unsigned int class)
|
||||||
|
Reference in New Issue
Block a user