From: Zbigniew Jędrzejewski-Szmek Date: Wed, 19 Jan 2022 17:09:22 +0000 (+0100) Subject: Use ASSERT_PTR() in more places X-Git-Tag: v251-rc1~485^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=601dc59be28275a0b4ac499dd0e72233d73b39d4;p=thirdparty%2Fsystemd.git Use ASSERT_PTR() in more places --- diff --git a/src/core/unit-printf.c b/src/core/unit-printf.c index 46c383b8419..774be7ba6f3 100644 --- a/src/core/unit-printf.c +++ b/src/core/unit-printf.c @@ -13,28 +13,22 @@ #include "user-util.h" static int specifier_prefix_and_instance(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - const Unit *u = userdata; - - assert(u); + const Unit *u = ASSERT_PTR(userdata); return unit_name_to_prefix_and_instance(u->id, ret); } static int specifier_prefix(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - const Unit *u = userdata; - - assert(u); + const Unit *u = ASSERT_PTR(userdata); return unit_name_to_prefix(u->id, ret); } static int specifier_prefix_unescaped(char specifier, const void *data, const char *root, const void *userdata, char **ret) { _cleanup_free_ char *p = NULL; - const Unit *u = userdata; + const Unit *u = ASSERT_PTR(userdata); int r; - assert(u); - r = unit_name_to_prefix(u->id, &p); if (r < 0) return r; @@ -43,21 +37,17 @@ static int specifier_prefix_unescaped(char specifier, const void *data, const ch } static int specifier_instance_unescaped(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - const Unit *u = userdata; - - assert(u); + const Unit *u = ASSERT_PTR(userdata); return unit_name_unescape(strempty(u->instance), ret); } static int specifier_last_component(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - const Unit *u = userdata; + const Unit *u = ASSERT_PTR(userdata); _cleanup_free_ char *prefix = NULL; char *dash; int r; - assert(u); - r = unit_name_to_prefix(u->id, &prefix); if (r < 0) return r; @@ -82,9 +72,7 @@ static int specifier_last_component_unescaped(char specifier, const void *data, } static int specifier_filename(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - const Unit *u = userdata; - - assert(u); + const Unit *u = ASSERT_PTR(userdata); if (u->instance) return unit_name_path_unescape(u->instance, ret); @@ -97,11 +85,9 @@ static void bad_specifier(const Unit *u, char specifier) { } static int specifier_cgroup(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - const Unit *u = userdata; + const Unit *u = ASSERT_PTR(userdata); char *n; - assert(u); - bad_specifier(u, specifier); if (u->cgroup_path) @@ -116,11 +102,9 @@ static int specifier_cgroup(char specifier, const void *data, const char *root, } static int specifier_cgroup_root(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - const Unit *u = userdata; + const Unit *u = ASSERT_PTR(userdata); char *n; - assert(u); - bad_specifier(u, specifier); n = strdup(u->manager->cgroup_root); @@ -132,11 +116,9 @@ static int specifier_cgroup_root(char specifier, const void *data, const char *r } static int specifier_cgroup_slice(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - const Unit *u = userdata, *slice; + const Unit *u = ASSERT_PTR(userdata), *slice; char *n; - assert(u); - bad_specifier(u, specifier); slice = UNIT_GET_SLICE(u); @@ -155,11 +137,9 @@ static int specifier_cgroup_slice(char specifier, const void *data, const char * } static int specifier_special_directory(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - const Unit *u = userdata; + const Unit *u = ASSERT_PTR(userdata); char *n = NULL; - assert(u); - n = strdup(u->manager->prefix[PTR_TO_UINT(data)]); if (!n) return -ENOMEM; @@ -169,7 +149,6 @@ static int specifier_special_directory(char specifier, const void *data, const c } int unit_name_printf(const Unit *u, const char* format, char **ret) { - /* * This will use the passed string as format string and replace the following specifiers (which should all be * safe for inclusion in unit names): diff --git a/src/shared/install-printf.c b/src/shared/install-printf.c index 403d6013c1f..14553d8c554 100644 --- a/src/shared/install-printf.c +++ b/src/shared/install-printf.c @@ -14,12 +14,10 @@ #include "user-util.h" static int specifier_prefix_and_instance(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - const UnitFileInstallInfo *i = userdata; + const UnitFileInstallInfo *i = ASSERT_PTR(userdata); _cleanup_free_ char *prefix = NULL; int r; - assert(i); - r = unit_name_to_prefix_and_instance(i->name, &prefix); if (r < 0) return r; @@ -38,11 +36,9 @@ static int specifier_prefix_and_instance(char specifier, const void *data, const } static int specifier_name(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - const UnitFileInstallInfo *i = userdata; + const UnitFileInstallInfo *i = ASSERT_PTR(userdata); char *ans; - assert(i); - if (unit_name_is_valid(i->name, UNIT_NAME_TEMPLATE) && i->default_instance) return unit_name_replace_instance(i->name, i->default_instance, ret); @@ -54,20 +50,16 @@ static int specifier_name(char specifier, const void *data, const char *root, co } static int specifier_prefix(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - const UnitFileInstallInfo *i = userdata; - - assert(i); + const UnitFileInstallInfo *i = ASSERT_PTR(userdata); return unit_name_to_prefix(i->name, ret); } static int specifier_instance(char specifier, const void *data, const char *root, const void *userdata, char **ret) { - const UnitFileInstallInfo *i = userdata; + const UnitFileInstallInfo *i = ASSERT_PTR(userdata); char *instance; int r; - assert(i); - r = unit_name_to_instance(i->name, &instance); if (r < 0) return r; @@ -87,6 +79,8 @@ static int specifier_last_component(char specifier, const void *data, const char char *dash; int r; + assert(ret); + r = specifier_prefix(specifier, data, root, userdata, &prefix); if (r < 0) return r;