summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2012-09-03 21:04:35 +0000
committerArthur de Jong <arthur@arthurdejong.org>2012-09-03 21:04:35 +0000
commit1afa882e5de487a14dad4c397c085dbfaa8381cd (patch)
tree3c540b4740b94a36cac85fb4866e285816f49d0f
parent0e09bee4df174b919331f236cc5cabf446fa5055 (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.c8
-rw-r--r--nss/group.c10
-rw-r--r--nss/hosts.c14
-rw-r--r--nss/netgroup.c11
-rw-r--r--nss/networks.c8
-rw-r--r--nss/passwd.c8
-rw-r--r--nss/protocols.c8
-rw-r--r--nss/rpc.c8
-rw-r--r--nss/services.c8
-rw-r--r--nss/shadow.c8
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;
diff --git a/nss/rpc.c b/nss/rpc.c
index cc1b12f..9ac8aaf 100644
--- a/nss/rpc.c
+++ b/nss/rpc.c
@@ -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;