diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | nis/nss_nisplus/nisplus-netgrp.c | 12 |
2 files changed, 14 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog index b89cecfc68..03288a0f71 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-12-08 Thorsten Kukuk <kukuk@suse.de> + + * nis/nss_nisplus/nisplus-netgrp.c (_nss_nisplus_getnetgrent_r): + Add check if the value is not an empty string. [BZ #305] + 2004-11-29 Jakub Jelinek <jakub@redhat.com> * stdlib/strtod_l.c (INTERNAL (__STRTOF)): If densize > 2 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 { |