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;