From: Yu Watanabe Date: Wed, 28 Nov 2018 08:54:04 +0000 (+0900) Subject: util: make *_from_name() returns negative errno on error X-Git-Tag: v240~186^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F10970%2Fhead;p=thirdparty%2Fsystemd.git util: make *_from_name() returns negative errno on error --- diff --git a/src/basic/af-list.c b/src/basic/af-list.c index 866a1d43173..cf03dfc6d39 100644 --- a/src/basic/af-list.c +++ b/src/basic/af-list.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ +#include #include #include @@ -29,7 +30,7 @@ int af_from_name(const char *name) { sc = lookup_af(name, strlen(name)); if (!sc) - return AF_UNSPEC; + return -EINVAL; return sc->id; } diff --git a/src/basic/arphrd-list.c b/src/basic/arphrd-list.c index a7ae4b8162e..a6b8fa9d84b 100644 --- a/src/basic/arphrd-list.c +++ b/src/basic/arphrd-list.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ +#include #include #include @@ -29,7 +30,7 @@ int arphrd_from_name(const char *name) { sc = lookup_arphrd(name, strlen(name)); if (!sc) - return 0; + return -EINVAL; return sc->id; } diff --git a/src/core/dbus-execute.c b/src/core/dbus-execute.c index 39823c8675a..31f9099b98e 100644 --- a/src/core/dbus-execute.c +++ b/src/core/dbus-execute.c @@ -1517,8 +1517,8 @@ int bus_exec_context_set_transient_property( int af; af = af_from_name(*s); - if (af <= 0) - return -EINVAL; + if (af < 0) + return af; if (!invert == c->address_families_whitelist) { r = set_put(c->address_families, INT_TO_PTR(af)); diff --git a/src/core/load-fragment.c b/src/core/load-fragment.c index ce222e40230..8b36365dd6d 100644 --- a/src/core/load-fragment.c +++ b/src/core/load-fragment.c @@ -65,7 +65,7 @@ static int supported_socket_protocol_from_string(const char *s) { r = socket_protocol_from_name(s); if (r < 0) - return -EINVAL; + return r; if (!IN_SET(r, IPPROTO_UDPLITE, IPPROTO_SCTP)) return -EPROTONOSUPPORT; @@ -2871,8 +2871,8 @@ int config_parse_address_families( } af = af_from_name(word); - if (af <= 0) { - log_syntax(unit, LOG_ERR, filename, line, 0, + if (af < 0) { + log_syntax(unit, LOG_ERR, filename, line, af, "Failed to parse address family, ignoring: %s", word); continue; } diff --git a/src/nspawn/nspawn-settings.c b/src/nspawn/nspawn-settings.c index 264ec61ad9d..505e8cac405 100644 --- a/src/nspawn/nspawn-settings.c +++ b/src/nspawn/nspawn-settings.c @@ -177,7 +177,6 @@ int config_parse_capability( for (;;) { _cleanup_free_ char *word = NULL; - int cap; r = extract_first_word(&rvalue, &word, NULL, 0); if (r < 0) { @@ -187,13 +186,13 @@ int config_parse_capability( if (r == 0) break; - cap = capability_from_name(word); - if (cap < 0) { - log_syntax(unit, LOG_ERR, filename, line, 0, "Failed to parse capability, ignoring: %s", word); + r = capability_from_name(word); + if (r < 0) { + log_syntax(unit, LOG_ERR, filename, line, r, "Failed to parse capability, ignoring: %s", word); continue; } - u |= UINT64_C(1) << cap; + u |= UINT64_C(1) << r; } if (u == 0) diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c index c581514b297..6eddae49d99 100644 --- a/src/nspawn/nspawn.c +++ b/src/nspawn/nspawn.c @@ -774,17 +774,14 @@ static int parse_argv(int argc, char *argv[]) { else minus = (uint64_t) -1; } else { - int cap; - - cap = capability_from_name(t); - if (cap < 0) - return log_error_errno(SYNTHETIC_ERRNO(EINVAL), - "Failed to parse capability %s.", t); + r = capability_from_name(t); + if (r < 0) + return log_error_errno(r, "Failed to parse capability %s.", t); if (c == ARG_CAPABILITY) - plus |= 1ULL << (uint64_t) cap; + plus |= 1ULL << r; else - minus |= 1ULL << (uint64_t) cap; + minus |= 1ULL << r; } } diff --git a/src/shared/socket-protocol-list.c b/src/shared/socket-protocol-list.c index 8041b84958e..797f1e9507b 100644 --- a/src/shared/socket-protocol-list.c +++ b/src/shared/socket-protocol-list.c @@ -1,5 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1+ */ +#include #include #include @@ -29,7 +30,7 @@ int socket_protocol_from_name(const char *name) { sc = lookup_socket_protocol(name, strlen(name)); if (!sc) - return 0; + return -EINVAL; return sc->id; } diff --git a/src/test/test-af-list.c b/src/test/test-af-list.c index e9fd66b1e65..c8ef3295b56 100644 --- a/src/test/test-af-list.c +++ b/src/test/test-af-list.c @@ -27,8 +27,8 @@ int main(int argc, const char *argv[]) { assert_se(af_to_name(af_max()) == NULL); assert_se(af_to_name(-1) == NULL); - assert_se(af_from_name("huddlduddl") == AF_UNSPEC); - assert_se(af_from_name("") == AF_UNSPEC); + assert_se(af_from_name("huddlduddl") == -EINVAL); + assert_se(af_from_name("") == -EINVAL); return 0; } diff --git a/src/test/test-arphrd-list.c b/src/test/test-arphrd-list.c index fd4cd626231..9803c53f212 100644 --- a/src/test/test-arphrd-list.c +++ b/src/test/test-arphrd-list.c @@ -27,8 +27,8 @@ int main(int argc, const char *argv[]) { assert_se(arphrd_to_name(arphrd_max()) == NULL); assert_se(arphrd_to_name(0) == NULL); - assert_se(arphrd_from_name("huddlduddl") == 0); - assert_se(arphrd_from_name("") == 0); + assert_se(arphrd_from_name("huddlduddl") == -EINVAL); + assert_se(arphrd_from_name("") == -EINVAL); return 0; }