diff options
Diffstat (limited to 'nss/shadow.c')
-rw-r--r-- | nss/shadow.c | 35 |
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) |