From 6da52ca861a1cae3f453d50dbb6fac6666a73f4b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Fri, 5 Feb 2021 18:44:22 +0100 Subject: nss-resolve: accept zero ifindex when parsing resolved reply Sometimes a reply isn't associated to any specific interface, it might be a general truth (for example served from /etc/hosts or so). In this case the server might pass ifindex == 0. Accept that. https://github.com/systemd/systemd/pull/17823#issuecomment-742439422 --- src/nss-resolve/nss-resolve.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/nss-resolve/nss-resolve.c b/src/nss-resolve/nss-resolve.c index be9d28d993..458eb487a5 100644 --- a/src/nss-resolve/nss-resolve.c +++ b/src/nss-resolve/nss-resolve.c @@ -90,7 +90,7 @@ static int json_dispatch_ifindex(const char *name, JsonVariant *variant, JsonDis return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not an integer.", strna(name)); t = json_variant_integer(variant); - if (t <= 0 || t > INT_MAX) + if (t > INT_MAX) return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is out of bounds for an interface index.", strna(name)); *ifi = (int) t; -- cgit v1.2.1