From: Yu Watanabe Date: Tue, 15 Mar 2022 07:14:07 +0000 (+0900) Subject: timedate: use cleanup attribute at one more place X-Git-Tag: v251-rc1~133 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8b9afa5524040bbf98987e461d9034c670aba2af;p=thirdparty%2Fsystemd.git timedate: use cleanup attribute at one more place --- diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c index 66b454269d7..1ac3dc102d2 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; }