diff options
author | Lennart Poettering <lennart@poettering.net> | 2014-07-16 03:30:40 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2014-07-16 03:30:40 +0200 |
commit | 555bd6e95bf2b469306d9cd86e126c0122d0895b (patch) | |
tree | 35d4e4e872117f8b93da53994f47aea01817175a /src/nss-myhostname/nss-myhostname.c | |
parent | 1fa65c593c6d2fbafe9d0f7caa6eb1c8034da2e0 (diff) |
nss: various minor fixes to nss-myhostname + nss-mymachines
Diffstat (limited to 'src/nss-myhostname/nss-myhostname.c')
-rw-r--r-- | src/nss-myhostname/nss-myhostname.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/nss-myhostname/nss-myhostname.c b/src/nss-myhostname/nss-myhostname.c index 23646e6e8a..f5dadb60aa 100644 --- a/src/nss-myhostname/nss-myhostname.c +++ b/src/nss-myhostname/nss-myhostname.c @@ -387,6 +387,12 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r( assert(errnop); assert(h_errnop); + if (!IN_SET(af, AF_INET, AF_INET6)) { + *errnop = EAFNOSUPPORT; + *h_errnop = NO_DATA; + return NSS_STATUS_UNAVAIL; + } + if (len != PROTO_ADDRESS_SIZE(af)) { *errnop = EINVAL; *h_errnop = NO_RECOVERY; @@ -404,17 +410,14 @@ enum nss_status _nss_myhostname_gethostbyaddr2_r( goto found; } - } else if (af == AF_INET6) { + } else { + assert(af == AF_INET6); if (memcmp(addr, LOCALADDRESS_IPV6, 16) == 0) { additional = "localhost"; goto found; } - } else { - *errnop = EAFNOSUPPORT; - *h_errnop = NO_DATA; - return NSS_STATUS_UNAVAIL; } n_addresses = local_addresses(&addresses); |