From: Zbigniew Jędrzejewski-Szmek Date: Mon, 11 Apr 2022 11:44:41 +0000 (+0200) Subject: shared/specifier: make sure we set the output variable even for void answers X-Git-Tag: v251-rc2~139^2~2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=1c7ec2d2c810e8dba823f2c90ef4230dc820e06c;p=thirdparty%2Fsystemd.git shared/specifier: make sure we set the output variable even for void answers This doesn't change anything for real uses, because we'd initialize the variable to NULL for _cleanup_ anyway, but let's follow our general pattern of always setting the output on "success". (Even if that success is an empty answer here.) --- diff --git a/src/shared/specifier.c b/src/shared/specifier.c index 16eb8830dc4..87b99d38bc6 100644 --- a/src/shared/specifier.c +++ b/src/shared/specifier.c @@ -276,12 +276,18 @@ int specifier_architecture(char specifier, const void *data, const char *root, c * installation. */ static int parse_os_release_specifier(const char *root, const char *id, char **ret) { + char *v = NULL; int r; assert(ret); + r = parse_os_release(root, id, &v); + if (r >= 0) + /* parse_os_release() calls parse_env_file() which only sets the return value for + * entries found. Let's make sure we set the return value in all cases. */ + *ret = v; + /* Translate error for missing os-release file to EUNATCH. */ - r = parse_os_release(root, id, ret); return r == -ENOENT ? -EUNATCH : r; }