Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP1:Update
glibc.4900
netgroup-buffer-tryagain.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File netgroup-buffer-tryagain.patch of Package glibc.4900
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. Index: glibc-2.19/nscd/netgroupcache.c =================================================================== --- glibc-2.19.orig/nscd/netgroupcache.c +++ glibc-2.19/nscd/netgroupcache.c @@ -203,11 +203,6 @@ addgetnetgrentX (struct database_dyn *db 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) @@ -322,11 +317,18 @@ addgetnetgrentX (struct database_dyn *db } } } - 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 *); Index: glibc-2.19/nss/nss_files/files-netgrp.c =================================================================== --- glibc-2.19.orig/nss/nss_files/files-netgrp.c +++ glibc-2.19/nss/nss_files/files-netgrp.c @@ -252,7 +252,7 @@ _nss_netgroup_parseline (char **cursor, if (cp - host > buflen) { *errnop = ERANGE; - status = NSS_STATUS_UNAVAIL; + status = NSS_STATUS_TRYAGAIN; } else {
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor