diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | nss/getent.c | 2 | ||||
-rw-r--r-- | nss/nss_files/files-network.c | 5 |
3 files changed, 11 insertions, 3 deletions
@@ -1,3 +1,10 @@ +2009-07-01 Ulrich Drepper <drepper@redhat.com> + + * nss/nss_files/files-network.c (netbyaddr): If type is AF_UNSPEC, + recognize all types. Fix endianess in comparison of network number. + * nss/getent.c (networks_keys): Pass AF_UNSPEC instead of AF_UNIX + to getnetbyaddr. + 2009-06-26 H.J. Lu <hongjiu.lu@intel.com> * sysdeps/x86_64/multiarch/ifunc-defines.sym (FAMILIY_OFFSET): Define. diff --git a/nss/getent.c b/nss/getent.c index 3a9430f..3a482e1 100644 --- a/nss/getent.c +++ b/nss/getent.c @@ -534,7 +534,7 @@ networks_keys (int number, char *key[]) for (i = 0; i < number; ++i) { if (isdigit (key[i][0])) - net = getnetbyaddr (inet_addr (key[i]), AF_UNIX); + net = getnetbyaddr (inet_addr (key[i]), AF_UNSPEC); else net = getnetbyname (key[i]); diff --git a/nss/nss_files/files-network.c b/nss/nss_files/files-network.c index 9f4a3e0..064de5a 100644 --- a/nss/nss_files/files-network.c +++ b/nss/nss_files/files-network.c @@ -1,5 +1,5 @@ /* Networks file parser in nss_files module. - Copyright (C) 1996, 1997, 1998, 2000, 2001 Free Software Foundation, Inc. + Copyright (C) 1996-1998, 2000, 2001, 2009 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -81,7 +81,8 @@ DB_LOOKUP (netbyname, ,, DB_LOOKUP (netbyaddr, ,, { - if (result->n_addrtype == type && result->n_net == net) + if ((type == AF_UNSPEC || result->n_addrtype == type) + && result->n_net == htonl (net)) /* Bingo! */ break; }, uint32_t net, int type) |