summary refs log tree commit diff
path: root/nis/ypclnt.c
diff options
context:
space:
mode:
Diffstat (limited to 'nis/ypclnt.c')
-rw-r--r--nis/ypclnt.c18
1 files changed, 10 insertions, 8 deletions
diff --git a/nis/ypclnt.c b/nis/ypclnt.c
index 5bef8d17d2..f07f0c6f82 100644
--- a/nis/ypclnt.c
+++ b/nis/ypclnt.c
@@ -74,11 +74,12 @@ __yp_bind (const char *domain, dom_binding **ypdb)
   if (ysd == NULL)
     {
       is_new = 1;
-      ysd = (dom_binding *) malloc (sizeof *ysd);
-      memset (ysd, '\0', sizeof *ysd);
+      ysd = (dom_binding *) calloc (1, sizeof *ysd);
       ysd->dom_socket = -1;
       ysd->dom_vers = -1;
     }
+  else
+    ysd->dom_client = NULL;
 
   try = 0;
 
@@ -257,11 +258,12 @@ do_ypcall (const char *domain, u_long prog, xdrproc_t xargs,
       use_ypbindlist = FALSE;
     }
   else
-    {
-      __yp_unbind (ydb);
-      free (ydb);
-      ydb = NULL;
-    }
+    if (ydb != NULL)
+      {
+	__yp_unbind (ydb);
+	free (ydb);
+	ydb = NULL;
+      }
 
   return result;
 }
@@ -728,7 +730,7 @@ yperr_string (const int error)
     case YPERR_NODOM:
       return _("Local domain name not set");
     case YPERR_BADDB:
-      return _("NIS map data base is bad");
+      return _("NIS map database is bad");
     case YPERR_VERS:
       return _("NIS client/server version mismatch - can't supply service");
     case YPERR_ACCESS: