summaryrefslogtreecommitdiff
path: root/src/timedate
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2022-03-15 16:14:07 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2022-03-17 20:09:18 +0900
commit8b9afa5524040bbf98987e461d9034c670aba2af (patch)
tree3f8bcc19e60e2547b934f6c5625a651f7b93334c /src/timedate
parentda29de23ef200b17bb780e5a0efb6cff28c72287 (diff)
downloadsystemd-8b9afa5524040bbf98987e461d9034c670aba2af.tar.gz
timedate: use cleanup attribute at one more place
Diffstat (limited to 'src/timedate')
-rw-r--r--src/timedate/timedated.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
index 66b454269d..1ac3dc102d 100644
--- a/src/timedate/timedated.c
+++ b/src/timedate/timedated.c
@@ -102,15 +102,18 @@ static void unit_status_info_clear(UnitStatusInfo *p) {
p->active_state = mfree(p->active_state);
}
-static void unit_status_info_free(UnitStatusInfo *p) {
- assert(p);
+static UnitStatusInfo *unit_status_info_free(UnitStatusInfo *p) {
+ if (!p)
+ return NULL;
unit_status_info_clear(p);
free(p->name);
free(p->path);
- free(p);
+ return mfree(p);
}
+DEFINE_TRIVIAL_CLEANUP_FUNC(UnitStatusInfo*, unit_status_info_free);
+
static void context_clear(Context *c) {
UnitStatusInfo *p;
@@ -129,8 +132,13 @@ static void context_clear(Context *c) {
}
static int context_add_ntp_service(Context *c, const char *s, const char *source) {
+ _cleanup_(unit_status_info_freep) UnitStatusInfo *unit = NULL;
UnitStatusInfo *u;
+ assert(c);
+ assert(s);
+ assert(source);
+
if (!unit_name_is_valid(s, UNIT_NAME_PLAIN))
return -EINVAL;
@@ -139,18 +147,17 @@ static int context_add_ntp_service(Context *c, const char *s, const char *source
if (streq(u->name, s))
return 0;
- u = new0(UnitStatusInfo, 1);
- if (!u)
+ unit = new0(UnitStatusInfo, 1);
+ if (!unit)
return -ENOMEM;
- u->name = strdup(s);
- if (!u->name) {
- free(u);
+ unit->name = strdup(s);
+ if (!unit->name)
return -ENOMEM;
- }
- LIST_APPEND(units, c->units, u);
- log_unit_debug(u, "added from %s.", source);
+ LIST_APPEND(units, c->units, unit);
+ log_unit_debug(unit, "added from %s.", source);
+ TAKE_PTR(unit);
return 0;
}