diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-03-15 16:14:07 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-03-17 20:09:18 +0900 |
commit | 8b9afa5524040bbf98987e461d9034c670aba2af (patch) | |
tree | 3f8bcc19e60e2547b934f6c5625a651f7b93334c /src/timedate | |
parent | da29de23ef200b17bb780e5a0efb6cff28c72287 (diff) | |
download | systemd-8b9afa5524040bbf98987e461d9034c670aba2af.tar.gz |
timedate: use cleanup attribute at one more place
Diffstat (limited to 'src/timedate')
-rw-r--r-- | src/timedate/timedated.c | 29 |
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; } |