Arthur de Jong

Open Source / Free Software developer

summaryrefslogtreecommitdiffstats
path: root/nss/shadow.c
diff options
context:
space:
mode:
Diffstat (limited to 'nss/shadow.c')
-rw-r--r--nss/shadow.c35
1 files changed, 1 insertions, 34 deletions
diff --git a/nss/shadow.c b/nss/shadow.c
index 8ab928e..cba7cfb 100644
--- a/nss/shadow.c
+++ b/nss/shadow.c
@@ -123,40 +123,7 @@ static char *spwd2str(struct spwd *result,char *buffer,size_t buflen)
static nss_status_t read_result(TFILE *fp,nss_XbyY_args_t *args)
{
- nss_status_t retv;
-#ifdef HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN
- struct spwd result;
- char *buffer;
- /* try to return in string format if requested */
- if (args->buf.result==NULL)
- {
- /* read the entry into a temporary buffer */
- buffer=(char *)malloc(args->buf.buflen);
- if (buffer==NULL)
- return NSS_STATUS_UNAVAIL;
- retv=read_spwd(fp,&result,buffer,args->buf.buflen,&args->erange);
- /* format to string */
- if (retv==NSS_STATUS_SUCCESS)
- if (spwd2str(&result,args->buf.buffer,args->buf.buflen)==NULL)
- {
- args->erange=1;
- retv=NSS_NOTFOUND;
- }
- /* clean up and return result */
- free(buffer);
- if (retv!=NSS_STATUS_SUCCESS)
- return retv;
- args->returnval=args->buf.buffer;
- args->returnlen=strlen(args->returnval);
- return NSS_STATUS_SUCCESS;
- }
-#endif /* HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN */
- /* read the entry */
- retv=read_spwd(fp,args->buf.result,args->buf.buffer,args->buf.buflen,&args->erange);
- if (retv!=NSS_STATUS_SUCCESS)
- return retv;
- args->returnval=args->buf.result;
- return NSS_STATUS_SUCCESS;
+ READ_RESULT(spwd,&args->erange);
}
static nss_status_t shadow_getspnam(nss_backend_t UNUSED(*be),void *args)