diff options
author | Roy Marples <roy@marples.name> | 2008-03-21 20:02:10 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2008-03-21 20:02:10 +0000 |
commit | a4f9eb699b915c90ac93a4a9af4de5456085c26c (patch) | |
tree | 0c02451b335a934f44251d643d98af0a9e69040d /src/rc | |
parent | f7f3b6ae093106e0f86556d1424af30e2122192a (diff) |
Fix some crashers in a prefix with few services.
Diffstat (limited to 'src/rc')
-rw-r--r-- | src/rc/rc.c | 10 | ||||
-rw-r--r-- | src/rc/runscript.c | 11 |
2 files changed, 13 insertions, 8 deletions
diff --git a/src/rc/rc.c b/src/rc/rc.c index 7b3d9015..499e0dc6 100644 --- a/src/rc/rc.c +++ b/src/rc/rc.c @@ -1145,9 +1145,13 @@ int main(int argc, char **argv) } } - if (coldplugged_services) - TAILQ_FOREACH(service, coldplugged_services, entries) - rc_stringlist_addu(start_services, service->value); + if (coldplugged_services) { + if (start_services) { + TAILQ_FOREACH(service, coldplugged_services, entries) + rc_stringlist_addu(start_services, service->value); + } else + start_services = coldplugged_services; + } } /* Save our softlevel now */ diff --git a/src/rc/runscript.c b/src/rc/runscript.c index d4500044..61746155 100644 --- a/src/rc/runscript.c +++ b/src/rc/runscript.c @@ -1255,12 +1255,13 @@ int runscript(int argc, char **argv) runlevel, depoptions); rc_stringlist_free(tmplist); tmplist = NULL; - TAILQ_FOREACH(svc, services, entries) - printf("%s ", svc->value); - if (TAILQ_FIRST(services)) + if (services) { + TAILQ_FOREACH(svc, services, entries) + printf("%s ", svc->value); printf ("\n"); - rc_stringlist_free(services); - services = NULL; + rc_stringlist_free(services); + services = NULL; + } } else if (strcmp (optarg, "status") == 0) { RC_SERVICE r = svc_status(); retval = (int) r; |