freebsd-dev/lib/libc/net
Jacques Vidrine c849849d06 It was reported that when using nss_ldap, getgrent(3) would behave
incorrectly when encountering `large' groups (many members and/or many
long member names).  The reporter tracked this down to the glibc NSS
module compatibility code (nss_compat.c): it would prematurely record
that a NSS module was finished iterating through its database in some
cases.

Two aspects are corrected:

1. nss_compat.c recorded that a NSS module was finished iterating
   whenever the module reported something other than SUCCESS.  The
   correct logic is to continue iteration when the module reports
   either SUCCESS or RETURN.  The __nss_compat_getgrent_r and
   __nss_compat_getpwent_r routines are updated to reflect this.

2. An internal helper macro __nss_compat_result is used to map glibc
   NSS status codes to BSD NSS status codes (e.g. NSS_STATUS_SUCCESS ->
   NS_SUCCESS).  It provided the obvious mapping.

   When a NSS routine is called with a too-small buffer, the
   convention in the BSD NSS code is to report RETURN.  (This is used
   to implement reentrant APIs such as getpwnam_r(3).)  However, the
   convention in glibc for this case is to set errno = ERANGE and
   overload TRYAGAIN.  __nss_compat_result is updated to handle this
   case.

PR:		bin/60287
Reported by:	Lachlan O'Dea <odela01@ca.com>
2004-01-09 13:43:49 +00:00
..
addr2ascii.3 mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
addr2ascii.c
ascii2addr.c
base64.c
byteorder.3
ether_addr.c
ethers.3 mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
getaddrinfo.3 EAI_ADDRFAMILY and EAI_NODATA was deprecated in RFC3493 2003-10-23 13:55:36 +00:00
getaddrinfo.c add destination address selection described in RFC3484. 2003-10-30 17:36:53 +00:00
gethostbydns.c Back out the `hiding' of strlcpy and strlcat. Several people 2003-05-01 19:03:14 +00:00
gethostbyht.c
gethostbyname.3 .Xr -> .Lb for librairy. There is no manual page corresponding to .Xr. 2003-06-08 10:07:14 +00:00
gethostbynis.c
gethostnamadr.c Remove bogus non-reentrant "temporary" implementation of gethostbyaddr_r() 2003-06-19 07:57:11 +00:00
getifaddrs.3 mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
getifaddrs.c
getifmaddrs.3 Add the userland part of the NET_RT_IFMALIST sysctl MIB. A new function, 2003-11-14 18:53:22 +00:00
getifmaddrs.c Add the userland part of the NET_RT_IFMALIST sysctl MIB. A new function, 2003-11-14 18:53:22 +00:00
getipnodebyname.3
getnameinfo.3 stop use of NI_WITHSCOPEID. it was deprecated. 2003-10-21 20:11:47 +00:00
getnameinfo.c Back out the `hiding' of strlcpy and strlcat. Several people 2003-05-01 19:03:14 +00:00
getnetbydns.c
getnetbyht.c
getnetbynis.c
getnetent.3
getnetnamadr.c
getproto.c
getprotoent.3
getprotoent.c
getprotoname.c
getservbyname.c
getservbyport.c
getservent.3
getservent.c
herror.c
hesiod.3
hesiod.c Back out the `hiding' of strlcpy and strlcat. Several people 2003-05-01 19:03:14 +00:00
if_indextoname.3 mdoc(7): Use the new feature of the .In macro. 2003-09-08 19:57:22 +00:00
if_indextoname.c
if_nameindex.c
if_nametoindex.c Back out the `hiding' of strlcpy and strlcat. Several people 2003-05-01 19:03:14 +00:00
inet6_opt_init.3 Switch Advanced Sockets API for IPv6 from RFC2292 to RFC3542 2003-10-24 18:26:30 +00:00
inet6_option_space.3 mdoc(7): Properly mark C headers. 2003-09-10 19:24:35 +00:00
inet6_rth_space.3 Switch Advanced Sockets API for IPv6 from RFC2292 to RFC3542 2003-10-24 18:26:30 +00:00
inet6_rthdr_space.3 mdoc(7): Properly mark C headers. 2003-09-10 19:24:35 +00:00
inet_addr.c
inet_lnaof.c
inet_makeaddr.c
inet_net_ntop.c
inet_net_pton.c From OpenBSD: 2003-09-15 23:38:06 +00:00
inet_net.3
inet_neta.c
inet_netof.c
inet_network.c
inet_ntoa.c
inet_ntop.c
inet_pton.c
inet.3
ip6opt.c u_int8_t cannot carry a number greater than 255. 2003-11-14 18:07:50 +00:00
linkaddr.3
linkaddr.c
Makefile.inc Add the userland part of the NET_RT_IFMALIST sysctl MIB. A new function, 2003-11-14 18:53:22 +00:00
map_v4v6.c
name6.c Replace use of a spinlock with a mutex. 2003-05-04 22:36:46 +00:00
ns_name.c
ns_netint.c
ns_parse.c
ns_print.c
ns_ttl.c
nsap_addr.c
nsdispatch.3 Assorted mdoc(7) fixes. 2003-05-22 13:02:28 +00:00
nsdispatch.c
nslexer.l
nsparser.y
nss_backends.h
nss_compat.c It was reported that when using nss_ldap, getgrent(3) would behave 2004-01-09 13:43:49 +00:00
rcmd.3
rcmd.c
rcmdsh.3
rcmdsh.c
recv.c
res_comp.c
res_config.h
res_data.c
res_debug.c
res_init.c Add support for timeout: and attempts: resolver options. 2003-12-07 12:32:24 +00:00
res_mkquery.c
res_mkupdate.c
res_query.c
res_send.c Work around a `warning: zero-length printf format string'. 2004-01-06 18:45:13 +00:00
res_update.c
resolver.3 mdoc(7): Properly mark C headers. 2003-09-10 19:24:35 +00:00
rthdr.c Switch Advanced Sockets API for IPv6 from RFC2292 to RFC3542 2003-10-24 18:26:30 +00:00
send.c
sockatmark.3
sockatmark.c
vars.c