Merge "init: refuse to start process if domain transition not defined"
diff --git a/init/init.cpp b/init/init.cpp
index f48016f..4d62c87 100644
--- a/init/init.cpp
+++ b/init/init.cpp
@@ -239,16 +239,20 @@
rc = getfilecon(svc->args[0], &fcon);
if (rc < 0) {
ERROR("could not get context while starting '%s'\n", svc->name);
- freecon(mycon);
+ free(mycon);
return;
}
rc = security_compute_create(mycon, fcon, string_to_security_class("process"), &scon);
if (rc == 0 && !strcmp(scon, mycon)) {
- ERROR("Warning! Service %s needs a SELinux domain defined; please fix!\n", svc->name);
+ ERROR("Service %s does not have a SELinux domain defined.\n", svc->name);
+ free(mycon);
+ free(fcon);
+ free(scon);
+ return;
}
- freecon(mycon);
- freecon(fcon);
+ free(mycon);
+ free(fcon);
if (rc < 0) {
ERROR("could not get context while starting '%s'\n", svc->name);
return;
@@ -285,7 +289,7 @@
}
}
- freecon(scon);
+ free(scon);
scon = NULL;
if (svc->writepid_files_) {
@@ -374,7 +378,7 @@
_exit(127);
}
- freecon(scon);
+ free(scon);
if (pid < 0) {
ERROR("failed to start '%s'\n", svc->name);