Update.
authorUlrich Drepper <drepper@redhat.com>
Sat, 25 Sep 2004 05:55:20 +0000 (05:55 +0000)
committerUlrich Drepper <drepper@redhat.com>
Sat, 25 Sep 2004 05:55:20 +0000 (05:55 +0000)
* nis/ypclnt.c (do_ypcall): Add one missing unlock.  Simplify the
code a bit.

ChangeLog
nis/ypclnt.c

index be34776..d717f84 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,8 @@
 2004-09-24  Ulrich Drepper  <drepper@redhat.com>
 
+       * nis/ypclnt.c (do_ypcall): Add one missing unlock.  Simplify the
+       code a bit.
+
        * misc/daemon.c (daemon): Define errno in case /dev/null is not
        the correct device.
 
index 184e49d..f25c7c7 100644 (file)
@@ -304,16 +304,10 @@ do_ypcall (const char *domain, u_long prog, xdrproc_t xargs,
   status = YPERR_YPERR;
 
   __libc_lock_lock (ypbindlist_lock);
-  if (__ypbindlist != NULL)
+  ydb = __ypbindlist;
+  while (ydb != NULL)
     {
-      ydb = __ypbindlist;
-      while (ydb != NULL)
-        {
-          if (strcmp (domain, ydb->dom_domain) == 0)
-            break;
-          ydb = ydb->dom_pnext;
-        }
-      if (ydb != NULL)
+      if (strcmp (domain, ydb->dom_domain) == 0)
        {
           if (__yp_bind (domain, &ydb) == 0)
            {
@@ -322,6 +316,7 @@ do_ypcall (const char *domain, u_long prog, xdrproc_t xargs,
                                      resp, &ydb, 0);
              if (status == YPERR_SUCCESS)
                {
+                 __libc_lock_unlock (ypbindlist_lock);
                  __set_errno (saved_errno);
                  return status;
                }
@@ -329,7 +324,10 @@ do_ypcall (const char *domain, u_long prog, xdrproc_t xargs,
          /* We use ypbindlist, and the old cached data is
             invalid. unbind now and create a new binding */
          yp_unbind_locked (domain);
+
+         break;
        }
+      ydb = ydb->dom_pnext;
     }
   __libc_lock_unlock (ypbindlist_lock);