summaryrefslogtreecommitdiff
path: root/nis/nss_nis
diff options
context:
space:
mode:
Diffstat (limited to 'nis/nss_nis')
-rw-r--r--nis/nss_nis/nis-grp.c8
-rw-r--r--nis/nss_nis/nis-publickey.c16
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;
}