aboutsummaryrefslogtreecommitdiff
path: root/nis
diff options
context:
space:
mode:
Diffstat (limited to 'nis')
-rw-r--r--nis/nss_nisplus/nisplus-ethers.c10
-rw-r--r--nis/nss_nisplus/nisplus-hosts.c15
-rw-r--r--nis/nss_nisplus/nisplus-network.c13
-rw-r--r--nis/nss_nisplus/nisplus-proto.c11
-rw-r--r--nis/nss_nisplus/nisplus-rpc.c10
-rw-r--r--nis/nss_nisplus/nisplus-service.c10
-rw-r--r--nis/nss_nisplus/nisplus-spwd.c10
7 files changed, 72 insertions, 7 deletions
diff --git a/nis/nss_nisplus/nisplus-ethers.c b/nis/nss_nisplus/nisplus-ethers.c
index 2620427243..8d69ad9373 100644
--- a/nis/nss_nisplus/nisplus-ethers.c
+++ b/nis/nss_nisplus/nisplus-ethers.c
@@ -176,6 +176,11 @@ internal_nisplus_getetherent_r (struct etherent *ether, char *buffer,
{
saved_result = NULL;
result = nis_first_entry (tablename_val);
+ if (result == NULL)
+ {
+ *errnop = errno;
+ return NSS_STATUS_TRYAGAIN;
+ }
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
return niserr2nss (result->status);
}
@@ -183,6 +188,11 @@ internal_nisplus_getetherent_r (struct etherent *ether, char *buffer,
{
saved_result = result;
result = nis_next_entry (tablename_val, &result->cookie);
+ if (result == NULL)
+ {
+ *errnop = errno;
+ return NSS_STATUS_TRYAGAIN;
+ }
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
{
nis_freeresult (saved_result);
diff --git a/nis/nss_nisplus/nisplus-hosts.c b/nis/nss_nisplus/nisplus-hosts.c
index 023e18f93d..f5f0ac96da 100644
--- a/nis/nss_nisplus/nisplus-hosts.c
+++ b/nis/nss_nisplus/nisplus-hosts.c
@@ -265,6 +265,11 @@ internal_nisplus_gethostent_r (struct hostent *host, char *buffer,
}
result = nis_first_entry (tablename_val);
+ if (result == NULL)
+ {
+ *errnop = errno;
+ return NSS_STATUS_TRYAGAIN;
+ }
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
{
enum nss_status retval = niserr2nss (result->status);
@@ -279,11 +284,13 @@ internal_nisplus_gethostent_r (struct hostent *host, char *buffer,
}
else
{
- nis_result *res2;
-
saved_res = result;
- res2 = nis_next_entry(tablename_val, &result->cookie);
- result = res2;
+ result = nis_next_entry (tablename_val, &result->cookie);
+ if (result == NULL)
+ {
+ *errnop = errno;
+ return NSS_STATUS_TRYAGAIN;
+ }
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
{
enum nss_status retval= niserr2nss (result->status);
diff --git a/nis/nss_nisplus/nisplus-network.c b/nis/nss_nisplus/nisplus-network.c
index 468520c937..286a4ccbdc 100644
--- a/nis/nss_nisplus/nisplus-network.c
+++ b/nis/nss_nisplus/nisplus-network.c
@@ -232,6 +232,11 @@ internal_nisplus_getnetent_r (struct netent *network, char *buffer,
}
result = nis_first_entry (tablename_val);
+ if (result == NULL)
+ {
+ *errnop = errno;
+ return NSS_STATUS_TRYAGAIN;
+ }
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
{
int retval = niserr2nss (result->status);
@@ -249,9 +254,13 @@ internal_nisplus_getnetent_r (struct netent *network, char *buffer,
}
else
{
- nis_result *res = nis_next_entry (tablename_val, &result->cookie);
saved_res = result;
- result = res;
+ result = nis_next_entry (tablename_val, &result->cookie);
+ if (result == NULL)
+ {
+ *errnop = errno;
+ return NSS_STATUS_TRYAGAIN;
+ }
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
{
int retval = niserr2nss (result->status);
diff --git a/nis/nss_nisplus/nisplus-proto.c b/nis/nss_nisplus/nisplus-proto.c
index 0b96153819..42a2d088da 100644
--- a/nis/nss_nisplus/nisplus-proto.c
+++ b/nis/nss_nisplus/nisplus-proto.c
@@ -227,6 +227,11 @@ internal_nisplus_getprotoent_r (struct protoent *proto, char *buffer,
}
result = nis_first_entry (tablename_val);
+ if (result == NULL)
+ {
+ *errnop = errno;
+ return NSS_STATUS_TRYAGAIN;
+ }
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
return niserr2nss (result->status);
}
@@ -234,7 +239,11 @@ internal_nisplus_getprotoent_r (struct protoent *proto, char *buffer,
{
saved_res = result;
result = nis_next_entry (tablename_val, &result->cookie);
-
+ if (result == NULL)
+ {
+ *errnop = errno;
+ return NSS_STATUS_TRYAGAIN;
+ }
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
{
nis_freeresult (saved_res);
diff --git a/nis/nss_nisplus/nisplus-rpc.c b/nis/nss_nisplus/nisplus-rpc.c
index 1c3faa7dc0..5875bbe98d 100644
--- a/nis/nss_nisplus/nisplus-rpc.c
+++ b/nis/nss_nisplus/nisplus-rpc.c
@@ -229,6 +229,11 @@ internal_nisplus_getrpcent_r (struct rpcent *rpc, char *buffer,
}
result = nis_first_entry (tablename_val);
+ if (result == NULL)
+ {
+ *errnop = errno;
+ return NSS_STATUS_TRYAGAIN;
+ }
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
return niserr2nss (result->status);
}
@@ -236,6 +241,11 @@ internal_nisplus_getrpcent_r (struct rpcent *rpc, char *buffer,
{
saved_res = result;
result = nis_next_entry (tablename_val, &result->cookie);
+ if (result == NULL)
+ {
+ *errnop = errno;
+ return NSS_STATUS_TRYAGAIN;
+ }
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
{
nis_freeresult (saved_res);
diff --git a/nis/nss_nisplus/nisplus-service.c b/nis/nss_nisplus/nisplus-service.c
index 3dd9f4dde6..51c1956e2f 100644
--- a/nis/nss_nisplus/nisplus-service.c
+++ b/nis/nss_nisplus/nisplus-service.c
@@ -234,6 +234,11 @@ internal_nisplus_getservent_r (struct servent *serv, char *buffer,
}
result = nis_first_entry (tablename_val);
+ if (result == NULL)
+ {
+ *errnop = errno;
+ return NSS_STATUS_TRYAGAIN;
+ }
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
return niserr2nss (result->status);
}
@@ -241,6 +246,11 @@ internal_nisplus_getservent_r (struct servent *serv, char *buffer,
{
saved_res = result;
result = nis_next_entry (tablename_val, &result->cookie);
+ if (result == NULL)
+ {
+ *errnop = errno;
+ return NSS_STATUS_TRYAGAIN;
+ }
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
{
nis_freeresult (saved_res);
diff --git a/nis/nss_nisplus/nisplus-spwd.c b/nis/nss_nisplus/nisplus-spwd.c
index 8584300698..e63e1eeaec 100644
--- a/nis/nss_nisplus/nisplus-spwd.c
+++ b/nis/nss_nisplus/nisplus-spwd.c
@@ -99,6 +99,11 @@ internal_nisplus_getspent_r (struct spwd *sp, char *buffer, size_t buflen,
}
result = nis_first_entry (pwd_tablename_val);
+ if (result == NULL)
+ {
+ *errnop = errno;
+ return NSS_STATUS_TRYAGAIN;
+ }
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
return niserr2nss (result->status);
}
@@ -106,6 +111,11 @@ internal_nisplus_getspent_r (struct spwd *sp, char *buffer, size_t buflen,
{
saved_res = result;
result = nis_next_entry (pwd_tablename_val, &result->cookie);
+ if (result == NULL)
+ {
+ *errnop = errno;
+ return NSS_STATUS_TRYAGAIN;
+ }
if (niserr2nss (result->status) != NSS_STATUS_SUCCESS)
{
nis_freeresult (saved_res);