summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorLuca Boccassi <bluca@debian.org>2023-04-14 14:15:35 +0100
committerGitHub <noreply@github.com>2023-04-14 14:15:35 +0100
commit4d67245472fd236298e2a33c2dbed55780cfdd0d (patch)
tree01c8cb1cb8f673b7c27a027be817ef86845c429e /src/shared
parent465529125a0654fec96d8b98de965b71e4df8ab4 (diff)
parentcfc28ee232ce07106137a42d2d467305c00163fe (diff)
downloadsystemd-4d67245472fd236298e2a33c2dbed55780cfdd0d.tar.gz
Merge pull request #27266 from dtardon/take-struct
Use TAKE_STRUCT() to copy and reset structs
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/bootspec.c6
-rw-r--r--src/shared/cpu-set-util.c14
-rw-r--r--src/shared/install.c3
-rw-r--r--src/shared/numa-util.c3
4 files changed, 11 insertions, 15 deletions
diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c
index 7cc63e8848..a5ae2478fe 100644
--- a/src/shared/bootspec.c
+++ b/src/shared/bootspec.c
@@ -389,8 +389,7 @@ static int boot_entry_load_type1(
return log_syntax(NULL, LOG_ERR, tmp.path, line, r, "Error while parsing: %m");
}
- *entry = tmp;
- tmp = (BootEntry) {};
+ *entry = TAKE_STRUCT(tmp);
return 0;
}
@@ -744,8 +743,7 @@ static int boot_entry_load_unified(
return log_oom();
}
- *ret = tmp;
- tmp = (BootEntry) {};
+ *ret = TAKE_STRUCT(tmp);
return 0;
}
diff --git a/src/shared/cpu-set-util.c b/src/shared/cpu-set-util.c
index 34c13cf969..d096576cd6 100644
--- a/src/shared/cpu-set-util.c
+++ b/src/shared/cpu-set-util.c
@@ -145,6 +145,8 @@ int parse_cpu_set_full(
_cleanup_(cpu_set_reset) CPUSet c = {};
const char *p = ASSERT_PTR(rvalue);
+ assert(cpu_set);
+
for (;;) {
_cleanup_free_ char *word = NULL;
unsigned cpu_lower, cpu_upper;
@@ -181,9 +183,7 @@ int parse_cpu_set_full(
}
}
- /* On success, transfer ownership to the output variable */
- *cpu_set = c;
- c = (CPUSet) {};
+ *cpu_set = TAKE_STRUCT(c);
return 0;
}
@@ -200,6 +200,8 @@ int parse_cpu_set_extend(
_cleanup_(cpu_set_reset) CPUSet cpuset = {};
int r;
+ assert(old);
+
r = parse_cpu_set_full(rvalue, &cpuset, true, unit, filename, line, lvalue);
if (r < 0)
return r;
@@ -211,8 +213,7 @@ int parse_cpu_set_extend(
}
if (!old->set) {
- *old = cpuset;
- cpuset = (CPUSet) {};
+ *old = TAKE_STRUCT(cpuset);
return 1;
}
@@ -286,7 +287,6 @@ int cpu_set_from_dbus(const uint8_t *bits, size_t size, CPUSet *set) {
return r;
}
- *set = s;
- s = (CPUSet) {};
+ *set = TAKE_STRUCT(s);
return 0;
}
diff --git a/src/shared/install.c b/src/shared/install.c
index a95206a1aa..eddc41964a 100644
--- a/src/shared/install.c
+++ b/src/shared/install.c
@@ -3310,8 +3310,7 @@ static int read_presets(RuntimeScope scope, const char *root_dir, UnitFilePreset
}
ps.initialized = true;
- *presets = ps;
- ps = (UnitFilePresets){};
+ *presets = TAKE_STRUCT(ps);
return 0;
}
diff --git a/src/shared/numa-util.c b/src/shared/numa-util.c
index 4f757f0b55..a954ea349e 100644
--- a/src/shared/numa-util.c
+++ b/src/shared/numa-util.c
@@ -120,8 +120,7 @@ int numa_to_cpu_set(const NUMAPolicy *policy, CPUSet *ret) {
return r;
}
- *ret = s;
- s = (CPUSet) {};
+ *ret = TAKE_STRUCT(s);
return 0;
}