am b2639f40
: Merge "Label sockets consistently with the seclabel value if specified."
# By Stephen Smalley # Via Gerrit Code Review (1) and Stephen Smalley (1) * commit 'b2639f4015c9fb2ff10c7bfae6074a8d968f5b7e': Label sockets consistently with the seclabel value if specified.
This commit is contained in:
commit
7480c0079d
1 changed files with 27 additions and 19 deletions
46
init/init.c
46
init/init.c
|
@ -198,28 +198,36 @@ void service_start(struct service *svc, const char *dynamic_args)
|
|||
}
|
||||
|
||||
if (is_selinux_enabled() > 0) {
|
||||
char *mycon = NULL, *fcon = NULL;
|
||||
if (svc->seclabel) {
|
||||
scon = strdup(svc->seclabel);
|
||||
if (!scon) {
|
||||
ERROR("Out of memory while starting '%s'\n", svc->name);
|
||||
return;
|
||||
}
|
||||
} else {
|
||||
char *mycon = NULL, *fcon = NULL;
|
||||
|
||||
INFO("computing context for service '%s'\n", svc->args[0]);
|
||||
rc = getcon(&mycon);
|
||||
if (rc < 0) {
|
||||
ERROR("could not get context while starting '%s'\n", svc->name);
|
||||
return;
|
||||
}
|
||||
INFO("computing context for service '%s'\n", svc->args[0]);
|
||||
rc = getcon(&mycon);
|
||||
if (rc < 0) {
|
||||
ERROR("could not get context while starting '%s'\n", svc->name);
|
||||
return;
|
||||
}
|
||||
|
||||
rc = getfilecon(svc->args[0], &fcon);
|
||||
if (rc < 0) {
|
||||
ERROR("could not get context while starting '%s'\n", svc->name);
|
||||
rc = getfilecon(svc->args[0], &fcon);
|
||||
if (rc < 0) {
|
||||
ERROR("could not get context while starting '%s'\n", svc->name);
|
||||
freecon(mycon);
|
||||
return;
|
||||
}
|
||||
|
||||
rc = security_compute_create(mycon, fcon, string_to_security_class("process"), &scon);
|
||||
freecon(mycon);
|
||||
return;
|
||||
}
|
||||
|
||||
rc = security_compute_create(mycon, fcon, string_to_security_class("process"), &scon);
|
||||
freecon(mycon);
|
||||
freecon(fcon);
|
||||
if (rc < 0) {
|
||||
ERROR("could not get context while starting '%s'\n", svc->name);
|
||||
return;
|
||||
freecon(fcon);
|
||||
if (rc < 0) {
|
||||
ERROR("could not get context while starting '%s'\n", svc->name);
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue