+2014-05-26 Siddhesh Poyarekar <siddhesh@redhat.com>
+
+ [BZ #16878]
+ * nscd/netgroupcache.c (addgetnetgrentX): Look for
+ NSS_STATUS_TRYAGAIN to indicate insufficient buffer space.
+ * nscd/nss_files/files-netgrp.c (_nss_netgroup_parseline): Use
+ NSS_STATUS_TRYAGAIN to indicate insufficient buffer space.
+
2014-05-25 Richard Henderson <rth@twiddle.net>
* sysdeps/unix/sysv/linux/aarch64/nptl/sysdep-cancel.h
16670, 16674, 16677, 16680, 16683, 16689, 16695, 16701, 16706, 16707,
16712, 16713, 16714, 16731, 16739, 16740, 16743, 16754, 16758, 16759,
16760, 16770, 16786, 16789, 16791, 16799, 16800, 16815, 16823, 16824,
- 16831, 16838, 16849, 16854, 16876, 16877, 16885, 16888, 16890, 16912,
- 16915, 16916, 16917, 16922, 16927, 16928, 16932, 16943, 16958, 16966,
- 16967, 16965, 16977, 16978.
+ 16831, 16838, 16849, 16854, 16876, 16877, 16878, 16885, 16888, 16890,
+ 16912, 16915, 16916, 16917, 16922, 16927, 16928, 16932, 16943, 16958,
+ 16966, 16967, 16965, 16977, 16978.
* The minimum Linux kernel version that this version of the GNU C Library
can be used with is 2.6.32.
int e;
status = getfct.f (&data, buffer + buffilled,
buflen - buffilled - req->key_len, &e);
- if (status == NSS_STATUS_RETURN
- || status == NSS_STATUS_NOTFOUND)
- /* This was either the last one for this group or the
- group was empty. Look at next group if available. */
- break;
if (status == NSS_STATUS_SUCCESS)
{
if (data.type == triple_val)
}
}
}
- else if (status == NSS_STATUS_UNAVAIL && e == ERANGE)
+ else if (status == NSS_STATUS_TRYAGAIN && e == ERANGE)
{
buflen *= 2;
buffer = xrealloc (buffer, buflen);
}
+ else if (status == NSS_STATUS_RETURN
+ || status == NSS_STATUS_NOTFOUND
+ || status == NSS_STATUS_UNAVAIL)
+ /* This was either the last one for this group or the
+ group was empty or the NSS module had an internal
+ failure. Look at next group if available. */
+ break;
}
enum nss_status (*endfct) (struct __netgrent *);