summaryrefslogtreecommitdiff
path: root/src/librc/librc.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-03-24 10:13:49 +0000
committerRoy Marples <roy@marples.name>2008-03-24 10:13:49 +0000
commit79719b538693c10cf8881da4357dd16a1117af34 (patch)
tree6b72d10e2c7e9cf5fa15d9a3243b3c3ac38e050c /src/librc/librc.c
parent486d5176749922bf0eb1ffc7d99a4b1b62740be3 (diff)
downloadopenrc-79719b538693c10cf8881da4357dd16a1117af34.tar.gz
openrc-79719b538693c10cf8881da4357dd16a1117af34.tar.bz2
openrc-79719b538693c10cf8881da4357dd16a1117af34.tar.xz
Fix adding services to the boot runlevel, #43
Diffstat (limited to 'src/librc/librc.c')
-rw-r--r--src/librc/librc.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/librc/librc.c b/src/librc/librc.c
index 788dcfa..ac18377 100644
--- a/src/librc/librc.c
+++ b/src/librc/librc.c
@@ -906,13 +906,14 @@ bool rc_service_add(const char *runlevel, const char *service)
/* We need to ensure that only things in /etc/init.d are added
* to the boot runlevel */
if (strcmp (runlevel, RC_LEVEL_BOOT) == 0) {
- free(init);
- p = realpath(dirname (init), path);
- if (! *p)
+ p = realpath(dirname(init), path);
+ if (! *p) {
+ free(init);
return false;
- retval = (strcmp(path, RC_INITDIR) == 0);
- if (! retval) {
+ }
+ if (strcmp(path, RC_INITDIR) != 0) {
+ free(init);
errno = EPERM;
return false;
}