diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2012-09-03 21:04:35 +0000 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2012-09-03 21:04:35 +0000 |
commit | 1afa882e5de487a14dad4c397c085dbfaa8381cd (patch) | |
tree | 3c540b4740b94a36cac85fb4866e285816f49d0f | |
parent | 0e09bee4df174b919331f236cc5cabf446fa5055 (diff) |
on Solaris store the errno value in NSS_ARGS(args)->erange
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1747 ef36b2f9-881f-0410-afb5-c4e39611909c
-rw-r--r-- | nss/ethers.c | 8 | ||||
-rw-r--r-- | nss/group.c | 10 | ||||
-rw-r--r-- | nss/hosts.c | 14 | ||||
-rw-r--r-- | nss/netgroup.c | 11 | ||||
-rw-r--r-- | nss/networks.c | 8 | ||||
-rw-r--r-- | nss/passwd.c | 8 | ||||
-rw-r--r-- | nss/protocols.c | 8 | ||||
-rw-r--r-- | nss/rpc.c | 8 | ||||
-rw-r--r-- | nss/services.c | 8 | ||||
-rw-r--r-- | nss/shadow.c | 8 |
10 files changed, 44 insertions, 47 deletions
diff --git a/nss/ethers.c b/nss/ethers.c index a109cf3..3fddb3b 100644 --- a/nss/ethers.c +++ b/nss/ethers.c @@ -2,7 +2,7 @@ ethers.c - NSS lookup functions for ethers database Copyright (C) 2006 West Consulting - Copyright (C) 2006, 2007, 2008, 2010 Arthur de Jong + Copyright (C) 2006, 2007, 2008, 2010, 2012 Arthur de Jong Copyright (C) 2010 Symas Corporation This library is free software; you can redistribute it and/or @@ -108,7 +108,7 @@ static nss_status_t read_etherstring(TFILE *fp,nss_XbyY_args_t *args) buffer=(char *)malloc(args->buf.buflen); if (buffer==NULL) return NSS_STATUS_UNAVAIL; - retv=read_etherent(fp,&result,buffer,args->buf.buflen,&errno); + retv=read_etherent(fp,&result,buffer,args->buf.buflen,&NSS_ARGS(args)->erange); if (retv!=NSS_STATUS_SUCCESS) { free(buffer); @@ -127,7 +127,7 @@ static nss_status_t read_etherstring(TFILE *fp,nss_XbyY_args_t *args) #define READ_RESULT(fp) \ NSS_ARGS(args)->buf.result? \ - read_etherent(fp,(struct etherent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno): \ + read_etherent(fp,(struct etherent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange): \ read_etherstring(fp,args); \ if ((NSS_ARGS(args)->buf.result)&&(retv==NSS_STATUS_SUCCESS)) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; @@ -135,7 +135,7 @@ static nss_status_t read_etherstring(TFILE *fp,nss_XbyY_args_t *args) #else /* not HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN */ #define READ_RESULT(fp) \ - read_etherent(fp,(struct etherent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno); \ + read_etherent(fp,(struct etherent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange); \ if (retv==NSS_STATUS_SUCCESS) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; diff --git a/nss/group.c b/nss/group.c index c20ac04..fa173d2 100644 --- a/nss/group.c +++ b/nss/group.c @@ -2,7 +2,7 @@ group.c - NSS lookup functions for group database Copyright (C) 2006 West Consulting - Copyright (C) 2006, 2007, 2008, 2009, 2010 Arthur de Jong + Copyright (C) 2006, 2007, 2008, 2009, 2010, 2012 Arthur de Jong Copyright (C) 2010 Symas Corporation This library is free software; you can redistribute it and/or @@ -196,7 +196,7 @@ static nss_status_t read_groupstring(TFILE *fp,nss_XbyY_args_t *args) buffer=(char *)malloc(args->buf.buflen); if (buffer==NULL) return NSS_STATUS_UNAVAIL; - retv=read_group(fp,&result,buffer,args->buf.buflen,&errno); + retv=read_group(fp,&result,buffer,args->buf.buflen,&NSS_ARGS(args)->erange); if (retv!=NSS_STATUS_SUCCESS) { free(buffer); @@ -224,7 +224,7 @@ static nss_status_t read_groupstring(TFILE *fp,nss_XbyY_args_t *args) #define READ_RESULT(fp) \ NSS_ARGS(args)->buf.result? \ - read_group(fp,(struct group *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno): \ + read_group(fp,(struct group *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange): \ read_groupstring(fp,args); \ if ((NSS_ARGS(args)->buf.result)&&(retv==NSS_STATUS_SUCCESS)) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; @@ -232,7 +232,7 @@ static nss_status_t read_groupstring(TFILE *fp,nss_XbyY_args_t *args) #else /* not HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN */ #define READ_RESULT(fp) \ - read_group(fp,(struct group *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno); \ + read_group(fp,(struct group *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange); \ if (retv==NSS_STATUS_SUCCESS) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; @@ -280,7 +280,7 @@ static nss_status_t group_getgroupsbymember(nss_backend_t UNUSED(*be),void *args gid_t skipgroup=(start>0)?argp->gid_array[0]:(gid_t)-1; NSS_BYNAME(NSLCD_ACTION_GROUP_BYMEMBER, argp->username, - read_gids(fp,skipgroup,&start,NULL,(gid_t **)&argp->gid_array,argp->maxgids,&errno); + read_gids(fp,skipgroup,&start,NULL,(gid_t **)&argp->gid_array,argp->maxgids,&NSS_ARGS(args)->erange); argp->numgids=(int)start;); } diff --git a/nss/hosts.c b/nss/hosts.c index eda7dc5..56b035f 100644 --- a/nss/hosts.c +++ b/nss/hosts.c @@ -2,7 +2,7 @@ hosts.c - NSS lookup functions for hosts database Copyright (C) 2006 West Consulting - Copyright (C) 2006, 2007, 2008, 2010 Arthur de Jong + Copyright (C) 2006, 2007, 2008, 2010, 2012 Arthur de Jong Copyright (C) 2010 Symas Corporation This library is free software; you can redistribute it and/or @@ -260,9 +260,9 @@ static nss_status_t read_hoststring(TFILE *fp,nss_XbyY_args_t *args,int erronemp int i; /* read the hostent */ if (erronempty) - retv=read_hostent_erronempty(fp,NSS_ARGS(args)->key.hostaddr.type,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&errno,&(NSS_ARGS(args)->h_errno)); + retv=read_hostent_erronempty(fp,NSS_ARGS(args)->key.hostaddr.type,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&NSS_ARGS(args)->erange,&(NSS_ARGS(args)->h_errno)); else - retv=read_hostent_nextonempty(fp,NSS_ARGS(args)->key.hostaddr.type,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&errno,&(NSS_ARGS(args)->h_errno)); + retv=read_hostent_nextonempty(fp,NSS_ARGS(args)->key.hostaddr.type,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&NSS_ARGS(args)->erange,&(NSS_ARGS(args)->h_errno)); if (retv!=NSS_STATUS_SUCCESS) return retv; /* allocate a temporary buffer */ @@ -305,14 +305,14 @@ static nss_status_t read_hoststring(TFILE *fp,nss_XbyY_args_t *args,int erronemp #define READ_RESULT_ERRONEMPTY(fp) \ NSS_ARGS(args)->buf.result? \ - read_hostent_erronempty(fp,NSS_ARGS(args)->key.hostaddr.type,(struct hostent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno,&(NSS_ARGS(args)->h_errno)): \ + read_hostent_erronempty(fp,NSS_ARGS(args)->key.hostaddr.type,(struct hostent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange,&(NSS_ARGS(args)->h_errno)): \ read_hoststring(fp,args,1); \ if ((NSS_ARGS(args)->buf.result)&&(retv==NSS_STATUS_SUCCESS)) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; #define READ_RESULT_NEXTONEMPTY(fp) \ NSS_ARGS(args)->buf.result? \ - read_hostent_nextonempty(fp,NSS_ARGS(args)->key.hostaddr.type,(struct hostent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno,&(NSS_ARGS(args)->h_errno)): \ + read_hostent_nextonempty(fp,NSS_ARGS(args)->key.hostaddr.type,(struct hostent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange,&(NSS_ARGS(args)->h_errno)): \ read_hoststring(fp,args,0); \ if ((NSS_ARGS(args)->buf.result)&&(retv==NSS_STATUS_SUCCESS)) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; @@ -320,12 +320,12 @@ static nss_status_t read_hoststring(TFILE *fp,nss_XbyY_args_t *args,int erronemp #else /* not HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN */ #define READ_RESULT_ERRONEMPTY(fp) \ - read_hostent_erronempty(fp,NSS_ARGS(args)->key.hostaddr.type,(struct hostent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno,&(NSS_ARGS(args)->h_errno)); \ + read_hostent_erronempty(fp,NSS_ARGS(args)->key.hostaddr.type,(struct hostent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange,&(NSS_ARGS(args)->h_errno)); \ if (retv==NSS_STATUS_SUCCESS) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; #define READ_RESULT_NEXTONEMPTY(fp) \ - read_hostent_nextonempty(fp,NSS_ARGS(args)->key.hostaddr.type,(struct hostent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno,&(NSS_ARGS(args)->h_errno)); \ + read_hostent_nextonempty(fp,NSS_ARGS(args)->key.hostaddr.type,(struct hostent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange,&(NSS_ARGS(args)->h_errno)); \ if (retv==NSS_STATUS_SUCCESS) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; diff --git a/nss/netgroup.c b/nss/netgroup.c index 51baa7d..f490d5b 100644 --- a/nss/netgroup.c +++ b/nss/netgroup.c @@ -2,7 +2,7 @@ netgroup.c - NSS lookup functions for netgroup entries Copyright (C) 2006 West Consulting - Copyright (C) 2006, 2007, 2008, 2010 Arthur de Jong + Copyright (C) 2006, 2007, 2008, 2010, 2012 Arthur de Jong Copyright (C) 2010 Symas Corporation This library is free software; you can redistribute it and/or @@ -166,14 +166,11 @@ static char *find_unseen_netgroup(nss_backend_t *be) } } -static nss_status_t netgroup_nslcd_setnetgrent(nss_backend_t *be,const char *group) +static nss_status_t netgroup_nslcd_setnetgrent(nss_backend_t *be,const char *group,int *errnop) { /* we cannot use NSS_SETENT() here because we have a parameter that is only available in this function */ int32_t tmpint32; - int errnocp; - int *errnop; - errnop=&errnocp; /* check parameter */ if ((group==NULL)||(group[0]=='\0')) return NSS_STATUS_UNAVAIL; @@ -224,7 +221,7 @@ static nss_status_t netgroup_setnetgrent_getnetgrent(nss_backend_t *be,void *arg } else { - rc=netgroup_nslcd_setnetgrent(be,group); + rc=netgroup_nslcd_setnetgrent(be,group,&NSS_ARGS(args)->erange); if (rc==NSS_STATUS_SUCCESS) found=1; free(group); @@ -303,7 +300,7 @@ static nss_status_t netgroup_setnetgrent_constructor(nss_backend_t *be,void *arg ngbe->seen_groups=set_new(); ngbe->unseen_groups=set_new(); /* start the first search */ - retv=netgroup_nslcd_setnetgrent(be,SETNETGRENT_ARGS(args)->netgroup); + retv=netgroup_nslcd_setnetgrent(be,SETNETGRENT_ARGS(args)->netgroup,&NSS_ARGS(args)->erange); if (retv!=NSS_STATUS_SUCCESS) { netgroup_setnetgrent_destructor(be,args); diff --git a/nss/networks.c b/nss/networks.c index 4237ab4..9e37d7e 100644 --- a/nss/networks.c +++ b/nss/networks.c @@ -2,7 +2,7 @@ networks.c - NSS lookup functions for networks database Copyright (C) 2006 West Consulting - Copyright (C) 2006, 2007, 2008, 2010, 2011 Arthur de Jong + Copyright (C) 2006, 2007, 2008, 2010, 2011, 2012 Arthur de Jong Copyright (C) 2010 Symas Corporation This library is free software; you can redistribute it and/or @@ -172,7 +172,7 @@ static nss_status_t read_netentstring(TFILE *fp,nss_XbyY_args_t *args) int i; struct in_addr priv_in_addr; /* read the netent */ - retv=read_netent(fp,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&errno,&(NSS_ARGS(args)->h_errno)); + retv=read_netent(fp,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&NSS_ARGS(args)->erange,&(NSS_ARGS(args)->h_errno)); if (retv!=NSS_STATUS_SUCCESS) return retv; /* allocate a temporary buffer */ @@ -198,7 +198,7 @@ static nss_status_t read_netentstring(TFILE *fp,nss_XbyY_args_t *args) #define READ_RESULT(fp) \ NSS_ARGS(args)->buf.result? \ - read_netent(fp,(struct netent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno,&(NSS_ARGS(args)->h_errno)): \ + read_netent(fp,(struct netent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange,&(NSS_ARGS(args)->h_errno)): \ read_netentstring(fp,args); \ if ((NSS_ARGS(args)->buf.result)&&(retv==NSS_STATUS_SUCCESS)) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; @@ -206,7 +206,7 @@ static nss_status_t read_netentstring(TFILE *fp,nss_XbyY_args_t *args) #else /* not HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN */ #define READ_RESULT(fp) \ - read_netent(fp,(struct netent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno,&(NSS_ARGS(args)->h_errno)); \ + read_netent(fp,(struct netent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange,&(NSS_ARGS(args)->h_errno)); \ if (retv==NSS_STATUS_SUCCESS) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; diff --git a/nss/passwd.c b/nss/passwd.c index 9681eb5..073cad8 100644 --- a/nss/passwd.c +++ b/nss/passwd.c @@ -2,7 +2,7 @@ passwd.c - NSS lookup functions for passwd database Copyright (C) 2006 West Consulting - Copyright (C) 2006, 2007, 2008, 2010 Arthur de Jong + Copyright (C) 2006, 2007, 2008, 2010, 2012 Arthur de Jong Copyright (C) 2010 Symas Corporation This library is free software; you can redistribute it and/or @@ -106,7 +106,7 @@ static nss_status_t read_passwdstring(TFILE *fp,nss_XbyY_args_t *args) char *buffer; size_t buflen; /* read the passwd */ - retv=read_passwd(fp,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&errno); + retv=read_passwd(fp,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&NSS_ARGS(args)->erange); if (retv!=NSS_STATUS_SUCCESS) return retv; /* allocate a temporary buffer */ @@ -127,7 +127,7 @@ static nss_status_t read_passwdstring(TFILE *fp,nss_XbyY_args_t *args) #define READ_RESULT(fp) \ NSS_ARGS(args)->buf.result? \ - read_passwd(fp,(struct passwd *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno): \ + read_passwd(fp,(struct passwd *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange): \ read_passwdstring(fp,args); \ if ((NSS_ARGS(args)->buf.result)&&(retv==NSS_STATUS_SUCCESS)) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; @@ -135,7 +135,7 @@ static nss_status_t read_passwdstring(TFILE *fp,nss_XbyY_args_t *args) #else /* not HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN */ #define READ_RESULT(fp) \ - read_passwd(fp,(struct passwd *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno); \ + read_passwd(fp,(struct passwd *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange); \ if (retv==NSS_STATUS_SUCCESS) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; diff --git a/nss/protocols.c b/nss/protocols.c index c641eaa..d635830 100644 --- a/nss/protocols.c +++ b/nss/protocols.c @@ -2,7 +2,7 @@ protocols.c - NSS lookup functions for protocol database Copyright (C) 2006 West Consulting - Copyright (C) 2006, 2007, 2008, 2010 Arthur de Jong + Copyright (C) 2006, 2007, 2008, 2010, 2012 Arthur de Jong Copyright (C) 2010 Symas Corporation This library is free software; you can redistribute it and/or @@ -103,7 +103,7 @@ static nss_status_t read_protostring(TFILE *fp,nss_XbyY_args_t *args) size_t buflen; int i; /* read the protoent */ - retv=read_protoent(fp,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&errno); + retv=read_protoent(fp,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&NSS_ARGS(args)->erange); if (retv!=NSS_STATUS_SUCCESS) return retv; /* allocate a temporary buffer */ @@ -128,7 +128,7 @@ static nss_status_t read_protostring(TFILE *fp,nss_XbyY_args_t *args) #define READ_RESULT(fp) \ NSS_ARGS(args)->buf.result? \ - read_protoent(fp,(struct protoent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno): \ + read_protoent(fp,(struct protoent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange): \ read_protostring(fp,args); \ if ((NSS_ARGS(args)->buf.result)&&(retv==NSS_STATUS_SUCCESS)) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; @@ -136,7 +136,7 @@ static nss_status_t read_protostring(TFILE *fp,nss_XbyY_args_t *args) #else /* not HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN */ #define READ_RESULT(fp) \ - read_protoent(fp,(struct protoent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno); \ + read_protoent(fp,(struct protoent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange); \ if (retv==NSS_STATUS_SUCCESS) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; @@ -2,7 +2,7 @@ rpc.c - NSS lookup functions for rpc database Copyright (C) 2006 West Consulting - Copyright (C) 2006, 2007, 2008, 2010 Arthur de Jong + Copyright (C) 2006, 2007, 2008, 2010, 2012 Arthur de Jong Copyright (C) 2010 Symas Corporation This library is free software; you can redistribute it and/or @@ -103,7 +103,7 @@ static nss_status_t read_rpcstring(TFILE *fp,nss_XbyY_args_t *args) size_t buflen; int i; /* read the rpcent */ - retv=read_rpcent(fp,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&errno); + retv=read_rpcent(fp,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&NSS_ARGS(args)->erange); if (retv!=NSS_STATUS_SUCCESS) return retv; /* allocate a temporary buffer */ @@ -128,7 +128,7 @@ static nss_status_t read_rpcstring(TFILE *fp,nss_XbyY_args_t *args) #define READ_RESULT(fp) \ NSS_ARGS(args)->buf.result? \ - read_rpcent(fp,(struct rpcent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno): \ + read_rpcent(fp,(struct rpcent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange): \ read_rpcstring(fp,args); \ if ((NSS_ARGS(args)->buf.result)&&(retv==NSS_STATUS_SUCCESS)) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; @@ -136,7 +136,7 @@ static nss_status_t read_rpcstring(TFILE *fp,nss_XbyY_args_t *args) #else /* not HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN */ #define READ_RESULT(fp) \ - read_rpcent(fp,(struct rpcent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno); \ + read_rpcent(fp,(struct rpcent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange); \ if (retv==NSS_STATUS_SUCCESS) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; diff --git a/nss/services.c b/nss/services.c index 4d03d5c..a5e588e 100644 --- a/nss/services.c +++ b/nss/services.c @@ -2,7 +2,7 @@ service.c - NSS lookup functions for services database Copyright (C) 2006 West Consulting - Copyright (C) 2006, 2007, 2008, 2010 Arthur de Jong + Copyright (C) 2006, 2007, 2008, 2010, 2012 Arthur de Jong Copyright (C) 2010 Symas Corporation This library is free software; you can redistribute it and/or @@ -107,7 +107,7 @@ static nss_status_t read_servstring(TFILE *fp,nss_XbyY_args_t *args) size_t buflen; int i; /* read the servent */ - retv=read_servent(fp,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&errno); + retv=read_servent(fp,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&NSS_ARGS(args)->erange); if (retv!=NSS_STATUS_SUCCESS) return retv; /* allocate a temporary buffer */ @@ -132,7 +132,7 @@ static nss_status_t read_servstring(TFILE *fp,nss_XbyY_args_t *args) #define READ_RESULT(fp) \ NSS_ARGS(args)->buf.result? \ - read_servent(fp,(struct servent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno): \ + read_servent(fp,(struct servent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange): \ read_servstring(fp,args); \ if ((NSS_ARGS(args)->buf.result)&&(retv==NSS_STATUS_SUCCESS)) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; @@ -140,7 +140,7 @@ static nss_status_t read_servstring(TFILE *fp,nss_XbyY_args_t *args) #else /* not HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN */ #define READ_RESULT(fp) \ - read_servent(fp,(struct servent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno); \ + read_servent(fp,(struct servent *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange); \ if (retv==NSS_STATUS_SUCCESS) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; diff --git a/nss/shadow.c b/nss/shadow.c index d22af52..b907ab8 100644 --- a/nss/shadow.c +++ b/nss/shadow.c @@ -2,7 +2,7 @@ shadow.c - NSS lookup functions for shadow database Copyright (C) 2006 West Consulting - Copyright (C) 2006, 2007, 2008, 2010 Arthur de Jong + Copyright (C) 2006, 2007, 2008, 2010, 2012 Arthur de Jong Copyright (C) 2010 Symas Corporation This library is free software; you can redistribute it and/or @@ -99,7 +99,7 @@ static nss_status_t read_spwdstring(TFILE *fp,nss_XbyY_args_t *args) char field_buf[128]; size_t buflen; /* read the spwd */ - retv=read_spwd(fp,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&errno); + retv=read_spwd(fp,&result,NSS_ARGS(args)->buf.buffer,args->buf.buflen,&NSS_ARGS(args)->erange); if (retv!=NSS_STATUS_SUCCESS) return retv; /* allocate a temporary buffer */ @@ -153,7 +153,7 @@ static nss_status_t read_spwdstring(TFILE *fp,nss_XbyY_args_t *args) #define READ_RESULT(fp) \ NSS_ARGS(args)->buf.result? \ - read_spwd(fp,(struct spwd *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno): \ + read_spwd(fp,(struct spwd *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange): \ read_spwdstring(fp,args); \ if ((NSS_ARGS(args)->buf.result)&&(retv==NSS_STATUS_SUCCESS)) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; @@ -161,7 +161,7 @@ static nss_status_t read_spwdstring(TFILE *fp,nss_XbyY_args_t *args) #else /* not HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN */ #define READ_RESULT(fp) \ - read_spwd(fp,(struct spwd *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&errno); \ + read_spwd(fp,(struct spwd *)NSS_ARGS(args)->buf.result,NSS_ARGS(args)->buf.buffer,NSS_ARGS(args)->buf.buflen,&NSS_ARGS(args)->erange); \ if (retv==NSS_STATUS_SUCCESS) \ NSS_ARGS(args)->returnval=NSS_ARGS(args)->buf.result; |