summaryrefslogtreecommitdiff
path: root/src/rc/runscript.c
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2008-03-19 12:26:47 +0000
committerRoy Marples <roy@marples.name>2008-03-19 12:26:47 +0000
commit1443fee901afd4f5fc9ea5b57f0f41369ce93532 (patch)
tree686a3f58bb5efee6a83464df6cb24784c4629f86 /src/rc/runscript.c
parentcdd3881c1b301f3cd1035ca1eedf2bfcc37e4403 (diff)
downloadopenrc-1443fee901afd4f5fc9ea5b57f0f41369ce93532.tar.gz
openrc-1443fee901afd4f5fc9ea5b57f0f41369ce93532.tar.bz2
openrc-1443fee901afd4f5fc9ea5b57f0f41369ce93532.tar.xz
Fix errors when reporting who we are scheduled by.
Diffstat (limited to 'src/rc/runscript.c')
-rw-r--r--src/rc/runscript.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/rc/runscript.c b/src/rc/runscript.c
index 2cab4dc..a889e6a 100644
--- a/src/rc/runscript.c
+++ b/src/rc/runscript.c
@@ -791,10 +791,12 @@ static void svc_start(bool deps)
rc_service_schedule_start(svc->value, service);
use_services = rc_deptree_depend(deptree, "iprovide",
svc->value);
- TAILQ_FOREACH (svc2, use_services, entries)
- rc_service_schedule_start(svc2->value, service);
- rc_stringlist_free(use_services);
- use_services = NULL;
+ if (use_services) {
+ TAILQ_FOREACH (svc2, use_services, entries)
+ rc_service_schedule_start(svc2->value, service);
+ rc_stringlist_free(use_services);
+ use_services = NULL;
+ }
len += strlen(svc->value) + 2;
n++;
}
@@ -804,13 +806,13 @@ static void svc_start(bool deps)
TAILQ_FOREACH(svc, tmplist, entries) {
if (p != tmp)
p += snprintf(p, len, ", ");
- p += snprintf(p, len, "%s", svc->value);
+ p += snprintf(p, len - (p - tmp), "%s", svc->value);
}
- free(tmp);
rc_stringlist_free(tmplist);
tmplist = NULL;
ewarnx("WARNING: %s is scheduled to start when %s has started",
applet, tmp);
+ free(tmp);
}
rc_stringlist_free(services);