Skip to content

Commit

Permalink
* nis/nss_nisplus/nisplus-ethers.c: Add missing null pointer check.
Browse files Browse the repository at this point in the history
	* nis/nss_nisplus/nisplus-hosts.c: Likewise.
	* nis/nss_nisplus/nisplus-network.c: Likewise.
	* nis/nss_nisplus/nisplus-proto.c: Likewise.
	* nis/nss_nisplus/nisplus-rpc.c: Likewise.
	* nis/nss_nisplus/nisplus-service.c: Likewise.
	* nis/nss_nisplus/nisplus-spwd.c: Likewise.
  • Loading branch information
Ulrich Drepper committed Apr 30, 2006
1 parent d08a1d4 commit 487609e
Show file tree
Hide file tree
Showing 8 changed files with 80 additions and 7 deletions.
8 changes: 8 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
2006-04-29 Ulrich Drepper <drepper@redhat.com>

* nis/nss_nisplus/nisplus-ethers.c: Add missing null pointer check.
* nis/nss_nisplus/nisplus-hosts.c: Likewise.
* nis/nss_nisplus/nisplus-network.c: Likewise.
* nis/nss_nisplus/nisplus-proto.c: Likewise.
* nis/nss_nisplus/nisplus-rpc.c: Likewise.
* nis/nss_nisplus/nisplus-service.c: Likewise.
* nis/nss_nisplus/nisplus-spwd.c: Likewise.

* nis/nisplus-parser.h (_nss_nisplus_parse_pwent): Add entry
parameter.
(_nss_nisplus_parse_pwent_chk): New prototype.
Expand Down
10 changes: 10 additions & 0 deletions nis/nss_nisplus/nisplus-ethers.c
Original file line number Diff line number Diff line change
Expand Up @@ -176,13 +176,23 @@ 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);
}
else
{
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);
Expand Down
15 changes: 11 additions & 4 deletions nis/nss_nisplus/nisplus-hosts.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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);
Expand Down
13 changes: 11 additions & 2 deletions nis/nss_nisplus/nisplus-network.c
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand All @@ -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);
Expand Down
11 changes: 10 additions & 1 deletion nis/nss_nisplus/nisplus-proto.c
Original file line number Diff line number Diff line change
Expand Up @@ -227,14 +227,23 @@ 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);
}
else
{
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);
Expand Down
10 changes: 10 additions & 0 deletions nis/nss_nisplus/nisplus-rpc.c
Original file line number Diff line number Diff line change
Expand Up @@ -229,13 +229,23 @@ 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);
}
else
{
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);
Expand Down
10 changes: 10 additions & 0 deletions nis/nss_nisplus/nisplus-service.c
Original file line number Diff line number Diff line change
Expand Up @@ -234,13 +234,23 @@ 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);
}
else
{
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);
Expand Down
10 changes: 10 additions & 0 deletions nis/nss_nisplus/nisplus-spwd.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,13 +99,23 @@ 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);
}
else
{
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);
Expand Down

0 comments on commit 487609e

Please sign in to comment.