diff options
author | Siddhesh Poyarekar <siddhesh@redhat.com> | 2014-05-26 11:40:08 +0530 |
---|---|---|
committer | Siddhesh Poyarekar <siddhesh@redhat.com> | 2014-05-26 11:40:08 +0530 |
commit | c3ec475c5dd16499aa040908e11d382c3ded9692 (patch) | |
tree | 744f28e32954c9b92034ae79ed445b51e4f36e86 /nss | |
parent | aa2f176d6f75b86b91e544c2e494066ac8f88cbd (diff) | |
download | glibc-c3ec475c5dd16499aa040908e11d382c3ded9692.tar.gz glibc-c3ec475c5dd16499aa040908e11d382c3ded9692.tar.xz glibc-c3ec475c5dd16499aa040908e11d382c3ded9692.zip |
Use NSS_STATUS_TRYAGAIN to indicate insufficient buffer (BZ #16878)
The netgroups nss modules in the glibc tree use NSS_STATUS_UNAVAIL (with errno as ERANGE) when the supplied buffer does not have sufficient space for the result. This is wrong, because the canonical way to indicate insufficient buffer is to set the errno to ERANGE and the status to NSS_STATUS_TRYAGAIN, as is used by all other modules. This fixes nscd behaviour when the nss_ldap module returns NSS_STATUS_TRYAGAIN to indicate that a netgroup entry is too long to fit into the supplied buffer.
Diffstat (limited to 'nss')
-rw-r--r-- | nss/nss_files/files-netgrp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/nss/nss_files/files-netgrp.c b/nss/nss_files/files-netgrp.c index 34eae4c5be..bc0b367da8 100644 --- a/nss/nss_files/files-netgrp.c +++ b/nss/nss_files/files-netgrp.c @@ -252,7 +252,7 @@ _nss_netgroup_parseline (char **cursor, struct __netgrent *result, if (cp - host > buflen) { *errnop = ERANGE; - status = NSS_STATUS_UNAVAIL; + status = NSS_STATUS_TRYAGAIN; } else { |