X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsystemctl%2Fsystemctl.c;h=87a6985cc983f3f8cd86f3216226faa601bf3af8;hb=fb15be839500c39f6c2f006f45306d439e1a7add;hp=d75281f5f658a875b5b0f37196d22afa9f2337d5;hpb=cbb13b2a538ece1c7ec3b210e2b36b47df2a13ea;p=elogind.git diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index d75281f5f..87a6985cc 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -471,7 +471,7 @@ static int list_units(DBusConnection *bus, char **args) { if (r < 0) return r; - qsort(unit_infos, c, sizeof(struct unit_info), compare_unit_info); + qsort_safe(unit_infos, c, sizeof(struct unit_info), compare_unit_info); output_units_list(unit_infos, c); @@ -733,8 +733,8 @@ static int list_sockets(DBusConnection *bus, char **args) { listen = triggered = NULL; /* avoid cleanup */ } - qsort(socket_infos, cs, sizeof(struct socket_info), - (__compar_fn_t) socket_info_compare); + qsort_safe(socket_infos, cs, sizeof(struct socket_info), + (__compar_fn_t) socket_info_compare); output_sockets_list(socket_infos, cs); @@ -748,7 +748,7 @@ static int list_sockets(DBusConnection *bus, char **args) { } free(socket_infos); - return 0; + return r; } static int compare_unit_file_list(const void *a, const void *b) { @@ -1108,7 +1108,7 @@ static int list_dependencies_one(DBusConnection *bus, const char *name, int leve if (r < 0) return r; - qsort(deps, strv_length(deps), sizeof (char*), list_dependencies_compare); + qsort_safe(deps, strv_length(deps), sizeof (char*), list_dependencies_compare); STRV_FOREACH(c, deps) { if (strv_contains(u, *c)) { @@ -3019,7 +3019,7 @@ static int status_property(const char *name, DBusMessageIter *iter, UnitStatusIn return r; } - LIST_PREPEND(ExecStatusInfo, exec, i->exec, info); + LIST_PREPEND(exec, i->exec, info); dbus_message_iter_next(&sub); } @@ -3474,7 +3474,7 @@ static int show_one(const char *verb, } while ((p = info.exec)) { - LIST_REMOVE(ExecStatusInfo, exec, info.exec, p); + LIST_REMOVE(exec, info.exec, p); exec_status_info_free(p); } @@ -3532,7 +3532,7 @@ static int show_all(const char* verb, if (r < 0) return r; - qsort(unit_infos, c, sizeof(struct unit_info), compare_unit_info); + qsort_safe(unit_infos, c, sizeof(struct unit_info), compare_unit_info); for (u = unit_infos; u < unit_infos + c; u++) { _cleanup_free_ char *p = NULL; @@ -4223,7 +4223,7 @@ static int enable_sysv_units(const char *verb, char **args) { #if defined(HAVE_SYSV_COMPAT) && defined(HAVE_CHKCONFIG) unsigned f = 1, t = 1; - LookupPaths paths = {}; + _cleanup_lookup_paths_free_ LookupPaths paths = {}; if (arg_scope != UNIT_FILE_SYSTEM) return 0; @@ -4361,8 +4361,6 @@ static int enable_sysv_units(const char *verb, char **args) { } finish: - lookup_paths_free(&paths); - /* Drop all SysV units */ for (f = 0, t = 0; args[f]; f++) {