summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coccinelle/strjoina.cocci6
-rw-r--r--src/basic/util.c7
-rw-r--r--src/core/machine-id-setup.c9
-rw-r--r--src/core/unit.c22
-rw-r--r--src/coredump/coredump.c2
-rw-r--r--src/login/logind-session.c2
-rw-r--r--src/machine/machine-dbus.c2
-rw-r--r--src/resolve/resolved-dns-dnssec.c2
-rw-r--r--src/shared/bus-util.c4
-rw-r--r--src/shared/path-lookup.c26
-rw-r--r--src/systemctl/systemctl.c6
-rw-r--r--src/test/test-strv.c10
12 files changed, 53 insertions, 45 deletions
diff --git a/coccinelle/strjoina.cocci b/coccinelle/strjoina.cocci
new file mode 100644
index 0000000000..a6236eb0f9
--- /dev/null
+++ b/coccinelle/strjoina.cocci
@@ -0,0 +1,6 @@
+@@
+expression n, m;
+expression list s;
+@@
+- n = strjoina(m, s, NULL);
++ n = strjoina(m, s);
diff --git a/src/basic/util.c b/src/basic/util.c
index 957b0e1ff1..b70c50047f 100644
--- a/src/basic/util.c
+++ b/src/basic/util.c
@@ -792,10 +792,11 @@ int update_reboot_parameter_and_warn(const char *param) {
return 0;
}
- RUN_WITH_UMASK(0022)
+ RUN_WITH_UMASK(0022) {
r = write_string_file("/run/systemd/reboot-param", param, WRITE_STRING_FILE_CREATE);
- if (r < 0)
- return log_warning_errno(r, "Failed to write reboot parameter file: %m");
+ if (r < 0)
+ return log_warning_errno(r, "Failed to write reboot parameter file: %m");
+ }
return 0;
}
diff --git a/src/core/machine-id-setup.c b/src/core/machine-id-setup.c
index 86da16c31e..9de528b6cf 100644
--- a/src/core/machine-id-setup.c
+++ b/src/core/machine-id-setup.c
@@ -259,11 +259,12 @@ int machine_id_setup(const char *root, sd_id128_t machine_id) {
/* Hmm, we couldn't write it? So let's write it to
* /run/machine-id as a replacement */
- RUN_WITH_UMASK(0022)
+ RUN_WITH_UMASK(0022) {
r = write_string_file(run_machine_id, id, WRITE_STRING_FILE_CREATE);
- if (r < 0) {
- (void) unlink(run_machine_id);
- return log_error_errno(r, "Cannot write %s: %m", run_machine_id);
+ if (r < 0) {
+ (void) unlink(run_machine_id);
+ return log_error_errno(r, "Cannot write %s: %m", run_machine_id);
+ }
}
/* And now, let's mount it over */
diff --git a/src/core/unit.c b/src/core/unit.c
index fb88260d23..c60ae2be9d 100644
--- a/src/core/unit.c
+++ b/src/core/unit.c
@@ -2518,12 +2518,11 @@ int unit_install_bus_match(Unit *u, sd_bus *bus, const char *name) {
return -EBUSY;
match = strjoina("type='signal',"
- "sender='org.freedesktop.DBus',"
- "path='/org/freedesktop/DBus',"
- "interface='org.freedesktop.DBus',"
- "member='NameOwnerChanged',"
- "arg0='", name, "'",
- NULL);
+ "sender='org.freedesktop.DBus',"
+ "path='/org/freedesktop/DBus',"
+ "interface='org.freedesktop.DBus',"
+ "member='NameOwnerChanged',"
+ "arg0='", name, "'");
return sd_bus_add_match(bus, &u->match_bus_slot, match, signal_name_owner_changed, u);
}
@@ -3437,7 +3436,7 @@ int unit_write_drop_in_private(Unit *u, UnitSetPropertiesMode mode, const char *
if (!IN_SET(mode, UNIT_PERSISTENT, UNIT_RUNTIME))
return 0;
- ndata = strjoina("[", UNIT_VTABLE(u)->private_section, "]\n", data, NULL);
+ ndata = strjoina("[", UNIT_VTABLE(u)->private_section, "]\n", data);
return unit_write_drop_in(u, mode, name, ndata);
}
@@ -3480,11 +3479,12 @@ int unit_make_transient(Unit *u) {
/* Let's open the file we'll write the transient settings into. This file is kept open as long as we are
* creating the transient, and is closed in unit_load(), as soon as we start loading the file. */
- RUN_WITH_UMASK(0022)
+ RUN_WITH_UMASK(0022) {
f = fopen(path, "we");
- if (!f) {
- free(path);
- return -errno;
+ if (!f) {
+ free(path);
+ return -errno;
+ }
}
if (u->transient_file)
diff --git a/src/coredump/coredump.c b/src/coredump/coredump.c
index 085909c20c..f65cb6f9dd 100644
--- a/src/coredump/coredump.c
+++ b/src/coredump/coredump.c
@@ -1095,7 +1095,7 @@ static int process_kernel(int argc, char* argv[]) {
IOVEC_SET_STRING(iovec[n_iovec++], core_environ);
}
- core_timestamp = strjoina("COREDUMP_TIMESTAMP=", context[CONTEXT_TIMESTAMP], "000000", NULL);
+ core_timestamp = strjoina("COREDUMP_TIMESTAMP=", context[CONTEXT_TIMESTAMP], "000000");
IOVEC_SET_STRING(iovec[n_iovec++], core_timestamp);
IOVEC_SET_STRING(iovec[n_iovec++], "MESSAGE_ID=fc2e22bc6ee647b6b90729ab34a250b1");
diff --git a/src/login/logind-session.c b/src/login/logind-session.c
index e088225beb..676fbc15a3 100644
--- a/src/login/logind-session.c
+++ b/src/login/logind-session.c
@@ -513,7 +513,7 @@ static int session_start_scope(Session *s) {
if (!scope)
return log_oom();
- description = strjoina("Session ", s->id, " of user ", s->user->name, NULL);
+ description = strjoina("Session ", s->id, " of user ", s->user->name);
r = manager_start_scope(
s->manager,
diff --git a/src/machine/machine-dbus.c b/src/machine/machine-dbus.c
index c7ff0efac8..ab54d9e934 100644
--- a/src/machine/machine-dbus.c
+++ b/src/machine/machine-dbus.c
@@ -730,7 +730,7 @@ int bus_machine_method_open_shell(sd_bus_message *message, void *userdata, sd_bu
return r;
/* Name and mode */
- unit = strjoina("container-shell@", p, ".service", NULL);
+ unit = strjoina("container-shell@", p, ".service");
r = sd_bus_message_append(tm, "ss", unit, "fail");
if (r < 0)
return r;
diff --git a/src/resolve/resolved-dns-dnssec.c b/src/resolve/resolved-dns-dnssec.c
index 0af7551425..a54aed3a63 100644
--- a/src/resolve/resolved-dns-dnssec.c
+++ b/src/resolve/resolved-dns-dnssec.c
@@ -1734,7 +1734,7 @@ static int dnssec_nsec_covers_wildcard(DnsResourceRecord *rr, const char *name)
if (r <= 0)
return r;
- wc = strjoina("*.", common_suffix, NULL);
+ wc = strjoina("*.", common_suffix);
return dns_name_between(dns_resource_key_name(rr->key), wc, rr->nsec.next_domain_name);
}
diff --git a/src/shared/bus-util.c b/src/shared/bus-util.c
index 0caaca03c7..2b86b1fcd6 100644
--- a/src/shared/bus-util.c
+++ b/src/shared/bus-util.c
@@ -2050,8 +2050,8 @@ static void log_job_error_with_service_result(const char* service, const char *r
_cleanup_free_ char *t;
t = strv_join((char**) extra_args, " ");
- systemctl = strjoina("systemctl ", t ?: "<args>", NULL);
- journalctl = strjoina("journalctl ", t ?: "<args>", NULL);
+ systemctl = strjoina("systemctl ", t ? : "<args>");
+ journalctl = strjoina("journalctl ", t ? : "<args>");
}
if (!isempty(result)) {
diff --git a/src/shared/path-lookup.c b/src/shared/path-lookup.c
index ca69a0aef2..80a2ea7940 100644
--- a/src/shared/path-lookup.c
+++ b/src/shared/path-lookup.c
@@ -249,7 +249,7 @@ static int acquire_generator_dirs(
if (!e)
return -ENXIO;
- prefix = strjoina(e, "/systemd/", NULL);
+ prefix = strjoina(e, "/systemd/");
break;
}
@@ -451,7 +451,7 @@ int lookup_paths_init(
*transient = NULL,
*persistent_control = NULL, *runtime_control = NULL;
bool append = false; /* Add items from SYSTEMD_UNIT_PATH before normal directories */
- char **l = NULL;
+ _cleanup_strv_free_ char **paths = NULL;
const char *e;
int r;
@@ -506,13 +506,12 @@ int lookup_paths_init(
/* FIXME: empty components in other places should be
* rejected. */
- r = path_split_and_make_absolute(e, &l);
+ r = path_split_and_make_absolute(e, &paths);
if (r < 0)
return r;
- } else
- l = NULL;
+ }
- if (!l || append) {
+ if (!paths || append) {
/* Let's figure something out. */
_cleanup_strv_free_ char **add = NULL;
@@ -587,14 +586,9 @@ int lookup_paths_init(
if (!add)
return -ENOMEM;
- if (l) {
- r = strv_extend_strv(&l, add, false);
- if (r < 0)
+ r = strv_extend_strv(&paths, add, true);
+ if (r < 0)
return r;
- } else {
- l = add;
- add = NULL;
- }
}
r = patch_root_prefix(&persistent_config, root);
@@ -626,12 +620,12 @@ int lookup_paths_init(
if (r < 0)
return r;
- r = patch_root_prefix_strv(l, root);
+ r = patch_root_prefix_strv(paths, root);
if (r < 0)
return -ENOMEM;
- p->search_path = strv_uniq(l);
- l = NULL;
+ p->search_path = strv_uniq(paths);
+ paths = NULL;
p->persistent_config = persistent_config;
p->runtime_config = runtime_config;
diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c
index f0e788a508..91829fcbcf 100644
--- a/src/systemctl/systemctl.c
+++ b/src/systemctl/systemctl.c
@@ -3254,7 +3254,7 @@ static int kill_unit(int argc, char *argv[], void *userdata) {
/* --fail was specified */
if (streq(arg_job_mode, "fail"))
- kill_who = strjoina(arg_kill_who, "-fail", NULL);
+ kill_who = strjoina(arg_kill_who, "-fail");
r = expand_names(bus, strv_skip(argv, 1), NULL, &names);
if (r < 0)
@@ -6087,8 +6087,7 @@ static int find_paths_to_edit(sd_bus *bus, char **names, char ***paths) {
return r;
STRV_FOREACH(name, names) {
- _cleanup_free_ char *path = NULL;
- char *new_path, *tmp_path;
+ _cleanup_free_ char *path = NULL, *new_path = NULL, *tmp_path = NULL;
r = unit_find_paths(bus, *name, &lp, &path, NULL);
if (r < 0)
@@ -6111,6 +6110,7 @@ static int find_paths_to_edit(sd_bus *bus, char **names, char ***paths) {
r = strv_push_pair(paths, new_path, tmp_path);
if (r < 0)
return log_oom();
+ new_path = tmp_path = NULL;
}
return 0;
diff --git a/src/test/test-strv.c b/src/test/test-strv.c
index fea1f848cd..fc01dcfaf1 100644
--- a/src/test/test-strv.c
+++ b/src/test/test-strv.c
@@ -358,7 +358,7 @@ static void test_strv_extend_strv_concat(void) {
}
static void test_strv_extend_strv(void) {
- _cleanup_strv_free_ char **a = NULL, **b = NULL;
+ _cleanup_strv_free_ char **a = NULL, **b = NULL, **n = NULL;
a = strv_new("abc", "def", "ghi", NULL);
b = strv_new("jkl", "mno", "abc", "pqr", NULL);
@@ -373,8 +373,14 @@ static void test_strv_extend_strv(void) {
assert_se(streq(a[3], "jkl"));
assert_se(streq(a[4], "mno"));
assert_se(streq(a[5], "pqr"));
-
assert_se(strv_length(a) == 6);
+
+ assert_se(strv_extend_strv(&n, b, false) >= 0);
+ assert_se(streq(n[0], "jkl"));
+ assert_se(streq(n[1], "mno"));
+ assert_se(streq(n[2], "abc"));
+ assert_se(streq(n[3], "pqr"));
+ assert_se(strv_length(n) == 4);
}
static void test_strv_extend(void) {