summaryrefslogtreecommitdiff
path: root/nis/nss_nisplus/nisplus-netgrp.c
diff options
context:
space:
mode:
Diffstat (limited to 'nis/nss_nisplus/nisplus-netgrp.c')
-rw-r--r--nis/nss_nisplus/nisplus-netgrp.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/nis/nss_nisplus/nisplus-netgrp.c b/nis/nss_nisplus/nisplus-netgrp.c
index c56a6854a4..607bc2c1ca 100644
--- a/nis/nss_nisplus/nisplus-netgrp.c
+++ b/nis/nss_nisplus/nisplus-netgrp.c
@@ -88,7 +88,9 @@ _nss_nisplus_getnetgrent_r (struct __netgrent *result, char *buffer,
result->type = triple_val;
- if (hostlen == 0)
+ if (hostlen == 0 ||
+ NISENTRYVAL (result->position, 2,
+ (nis_result *) result->data)[0] == '\0')
result->val.triple.host = NULL;
else
{
@@ -99,7 +101,9 @@ _nss_nisplus_getnetgrent_r (struct __netgrent *result, char *buffer,
*cp++ = '\0';
}
- if (userlen == 0)
+ if (userlen == 0 ||
+ NISENTRYVAL (result->position, 3,
+ (nis_result *) result->data)[0] == '\0')
result->val.triple.user = NULL;
else
{
@@ -110,7 +114,9 @@ _nss_nisplus_getnetgrent_r (struct __netgrent *result, char *buffer,
*cp++ = '\0';
}
- if (domainlen == 0)
+ if (domainlen == 0 ||
+ NISENTRYVAL (result->position, 4,
+ (nis_result *) result->data)[0] == '\0')
result->val.triple.domain = NULL;
else
{