diff options
Diffstat (limited to 'nis/nss_nis')
-rw-r--r-- | nis/nss_nis/nis-grp.c | 8 | ||||
-rw-r--r-- | nis/nss_nis/nis-publickey.c | 16 |
2 files changed, 15 insertions, 9 deletions
diff --git a/nis/nss_nis/nis-grp.c b/nis/nss_nis/nis-grp.c index d727202513..139edf2dd8 100644 --- a/nis/nss_nis/nis-grp.c +++ b/nis/nss_nis/nis-grp.c @@ -122,7 +122,7 @@ internal_nis_getgrent_r (struct group *grp, char *buffer, size_t buflen) free (result); parse_res = _nss_files_parse_grent (p, grp, data, buflen); - if (!parse_res && errno == ERANGE) + if (parse_res < 1 && errno == ERANGE) return NSS_STATUS_TRYAGAIN; free (oldkey); @@ -130,7 +130,7 @@ internal_nis_getgrent_r (struct group *grp, char *buffer, size_t buflen) oldkeylen = keylen; new_start = 0; } - while (!parse_res); + while (parse_res < 1); return NSS_STATUS_SUCCESS; } @@ -192,7 +192,7 @@ _nss_nis_getgrnam_r (const char *name, struct group *grp, parse_res = _nss_files_parse_grent (p, grp, data, buflen); - if (!parse_res) + if (parse_res < 1) { if (errno == ERANGE) return NSS_STATUS_TRYAGAIN; @@ -243,7 +243,7 @@ _nss_nis_getgrgid_r (gid_t gid, struct group *grp, parse_res = _nss_files_parse_grent (p, grp, data, buflen); - if (!parse_res) + if (parse_res < 1) { if (errno == ERANGE) return NSS_STATUS_TRYAGAIN; diff --git a/nis/nss_nis/nis-publickey.c b/nis/nss_nis/nis-publickey.c index aad4da5cc2..f50f7095fc 100644 --- a/nis/nss_nis/nis-publickey.c +++ b/nis/nss_nis/nis-publickey.c @@ -23,22 +23,24 @@ #include <string.h> #include <syslog.h> #include <libc-lock.h> -#include <rpc/key_prot.h> +#include <rpc/rpc.h> #include <rpcsvc/yp.h> #include <rpcsvc/ypclnt.h> +#if defined (HAVE_SECURE_RPC) +#include <rpc/key_prot.h> +extern int xdecrypt (char *, char *); +#endif #include "nss-nis.h" -extern int xdecrypt (char *, char *); - -/* If we found the entry, we give a SUCCESS and an empty key back. */ +/* If we haven't found the entry, we give a SUCCESS and an empty key back. */ enum nss_status _nss_nis_getpublickey (const char *netname, char *pkey) { enum nss_status retval; char *domain, *result; int len; - + pkey[0] = 0; if (netname == NULL) @@ -75,6 +77,7 @@ _nss_nis_getpublickey (const char *netname, char *pkey) enum nss_status _nss_nis_getsecretkey (const char *netname, char *skey, char *passwd) { +#if defined (HAVE_SECURE_RPC) enum nss_status retval; char buf[1024]; char *domain, *result; @@ -120,6 +123,9 @@ _nss_nis_getsecretkey (const char *netname, char *skey, char *passwd) buf[HEXKEYBYTES] = 0; strcpy (skey, buf); } +#else + skey[0] = 0; +#endif return NSS_STATUS_SUCCESS; } |