- Timestamp:
- May 24, 2009, 6:03:52 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/server/common/oursrc/nss_nonlocal/nonlocal-passwd.c
r782 r1131 96 96 fct.ptr = fct_start; 97 97 do { 98 morebuf: 98 99 if (fct.l == _nss_nonlocal_getpwuid_r) 99 100 status = NSS_STATUS_NOTFOUND; 100 101 else 101 102 status = DL_CALL_FCT(fct.l, (uid, &pwbuf, buf, buflen, errnop)); 102 if (status == NSS_STATUS_TRYAGAIN && *errnop == ERANGE) 103 break; 103 if (status == NSS_STATUS_TRYAGAIN && *errnop == ERANGE) { 104 free(buf); 105 buflen *= 2; 106 buf = malloc(buflen); 107 if (buf == NULL) { 108 *errnop = ENOMEM; 109 errno = old_errno; 110 return NSS_STATUS_TRYAGAIN; 111 } 112 goto morebuf; 113 } 104 114 } while (__nss_next(&nip, fct_name, &fct.ptr, status, 0) == 0); 105 115 … … 147 157 fct.ptr = fct_start; 148 158 do { 159 morebuf: 149 160 if (fct.l == _nss_nonlocal_getpwnam_r) 150 161 status = NSS_STATUS_NOTFOUND; 151 162 else 152 163 status = DL_CALL_FCT(fct.l, (user, &pwbuf, buf, buflen, errnop)); 153 if (status == NSS_STATUS_TRYAGAIN && *errnop == ERANGE) 154 break; 164 if (status == NSS_STATUS_TRYAGAIN && *errnop == ERANGE) { 165 free(buf); 166 buflen *= 2; 167 buf = malloc(buflen); 168 if (buf == NULL) { 169 *errnop = ENOMEM; 170 errno = old_errno; 171 return NSS_STATUS_TRYAGAIN; 172 } 173 goto morebuf; 174 } 155 175 } while (__nss_next(&nip, fct_name, &fct.ptr, status, 0) == 0); 156 176
Note: See TracChangeset
for help on using the changeset viewer.