diff options
author | Roy Marples <roy@marples.name> | 2007-09-18 15:43:19 +0000 |
---|---|---|
committer | Roy Marples <roy@marples.name> | 2007-09-18 15:43:19 +0000 |
commit | 81c009e47d3a0779cee32e2a90e5a479bbaa790e (patch) | |
tree | 93aa10317db2ef70e8773e2168c5f1006c18d26e /src/librc-depend.c | |
parent | 9587d71df3c50b26e8e09a74c6d884a965dafafa (diff) |
Don't be an ass - don't free the 2nd list. Instead just empty it.
Diffstat (limited to 'src/librc-depend.c')
-rw-r--r-- | src/librc-depend.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/librc-depend.c b/src/librc-depend.c index 32bbf2bd..4df64635 100644 --- a/src/librc-depend.c +++ b/src/librc-depend.c @@ -479,6 +479,7 @@ char **rc_order_services (rc_depinfo_t *deptree, const char *runlevel, char **types = NULL; char **services = NULL; bool reverse = false; + char **tmp = NULL; if (! runlevel) return (NULL); @@ -493,25 +494,33 @@ char **rc_order_services (rc_depinfo_t *deptree, const char *runlevel, strcmp (runlevel, RC_LEVEL_REBOOT) == 0) { list = rc_ls_dir (RC_SVCDIR_STARTING, RC_LS_INITD); - rc_strlist_join (&list, - rc_ls_dir (RC_SVCDIR_INACTIVE, RC_LS_INITD)); - rc_strlist_join (&list, - rc_ls_dir (RC_SVCDIR_STARTED, RC_LS_INITD)); + + tmp = rc_ls_dir (RC_SVCDIR_INACTIVE, RC_LS_INITD); + rc_strlist_join (&list, tmp); + rc_strlist_free (tmp); + + tmp = rc_ls_dir (RC_SVCDIR_INACTIVE, RC_LS_INITD); + rc_strlist_join (&list, tmp); + rc_strlist_free (tmp); reverse = true; } else { list = rc_services_in_runlevel (runlevel); /* Add coldplugged services */ - rc_strlist_join (&list, rc_ls_dir (RC_SVCDIR_COLDPLUGGED, RC_LS_INITD)); + tmp = rc_ls_dir (RC_SVCDIR_COLDPLUGGED, RC_LS_INITD); + rc_strlist_join (&list, tmp); + rc_strlist_free (tmp); /* If we're not the boot runlevel then add that too */ if (strcmp (runlevel, bootlevel) != 0) { char *path = rc_strcatpaths (RC_RUNLEVELDIR, bootlevel, (char *) NULL); - rc_strlist_join (&list, rc_ls_dir (path, RC_LS_INITD)); + tmp = rc_ls_dir (path, RC_LS_INITD); + rc_strlist_join (&list, tmp); + rc_strlist_free (tmp); free (path); } - } + } /* Now we have our lists, we need to pull in any dependencies and order them */ |