diff options
-rw-r--r-- | src/librc/librc.c | 7 | ||||
-rw-r--r-- | src/rc/runscript.c | 3 |
2 files changed, 7 insertions, 3 deletions
diff --git a/src/librc/librc.c b/src/librc/librc.c index afd20d5f..c94c7a4b 100644 --- a/src/librc/librc.c +++ b/src/librc/librc.c @@ -501,7 +501,7 @@ bool rc_service_mark(const char *service, const RC_SERVICE state) base = basename_c(service); if (state != RC_SERVICE_STOPPED) { - if (! exists(init)) { + if (!exists(init)) { free(init); return false; } @@ -547,7 +547,10 @@ bool rc_service_mark(const char *service, const RC_SERVICE state) symlink(init, was); skip_wasinactive = true; } - unlink(file); + if (unlink(file) == -1) { + free(init); + return false; + } } } } diff --git a/src/rc/runscript.c b/src/rc/runscript.c index c2cef71c..2f96d7ac 100644 --- a/src/rc/runscript.c +++ b/src/rc/runscript.c @@ -1306,7 +1306,8 @@ int runscript(int argc, char **argv) } } else if (strcmp(optarg, "zap") == 0) { einfo("Manually resetting %s to stopped state", applet); - rc_service_mark(applet, RC_SERVICE_STOPPED); + if (!rc_service_mark(applet, RC_SERVICE_STOPPED)) + eerrorx("rc_service_mark: %s", strerror(errno)); uncoldplug(); } else svc_exec(optarg, NULL); |