about summary refs log tree commit diff
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;
 }