summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/basic/main-func.h2
-rw-r--r--src/login/inhibit.c8
-rw-r--r--src/sysctl/sysctl.c22
3 files changed, 12 insertions, 20 deletions
diff --git a/src/basic/main-func.h b/src/basic/main-func.h
index 9dfcea9296..6417cc822a 100644
--- a/src/basic/main-func.h
+++ b/src/basic/main-func.h
@@ -3,6 +3,7 @@
#include <stdlib.h>
+#include "pager.h"
#include "static-destruct.h"
#define _DEFINE_MAIN_FUNCTION(impl, ret) \
@@ -10,6 +11,7 @@
int r; \
r = impl(argc, argv); \
static_destruct(); \
+ pager_close(); \
return ret; \
}
diff --git a/src/login/inhibit.c b/src/login/inhibit.c
index 5c0637c861..7a63eb6efc 100644
--- a/src/login/inhibit.c
+++ b/src/login/inhibit.c
@@ -282,12 +282,10 @@ static int run(int argc, char *argv[]) {
if (r < 0)
return log_error_errno(r, "Failed to connect to bus: %m");
- if (arg_action == ACTION_LIST) {
- r = print_inhibitors(bus);
- pager_close();
- return r;
+ if (arg_action == ACTION_LIST)
+ return print_inhibitors(bus);
- } else {
+ else {
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_close_ int fd = -1;
_cleanup_free_ char *w = NULL;
diff --git a/src/sysctl/sysctl.c b/src/sysctl/sysctl.c
index f9d282d1cb..d04a2cff15 100644
--- a/src/sysctl/sysctl.c
+++ b/src/sysctl/sysctl.c
@@ -266,21 +266,19 @@ static int parse_argv(int argc, char *argv[]) {
static int run(int argc, char *argv[]) {
_cleanup_(ordered_hashmap_free_free_freep) OrderedHashmap *sysctl_options = NULL;
- int r = 0, k;
+ int r, k;
r = parse_argv(argc, argv);
if (r <= 0)
- goto finish;
+ return r;
log_setup_service();
umask(0022);
sysctl_options = ordered_hashmap_new(&path_hash_ops);
- if (!sysctl_options) {
- r = log_oom();
- goto finish;
- }
+ if (!sysctl_options)
+ return log_oom();
r = 0;
@@ -297,16 +295,13 @@ static int run(int argc, char *argv[]) {
char **f;
r = conf_files_list_strv(&files, ".conf", NULL, 0, (const char**) CONF_PATHS_STRV("sysctl.d"));
- if (r < 0) {
- log_error_errno(r, "Failed to enumerate sysctl.d files: %m");
- goto finish;
- }
+ if (r < 0)
+ return log_error_errno(r, "Failed to enumerate sysctl.d files: %m");
if (arg_cat_config) {
(void) pager_open(arg_pager_flags);
- r = cat_files(NULL, files, 0);
- goto finish;
+ return cat_files(NULL, files, 0);
}
STRV_FOREACH(f, files) {
@@ -320,9 +315,6 @@ static int run(int argc, char *argv[]) {
if (k < 0 && r == 0)
r = k;
-finish:
- pager_close();
-
return r;
}