commit-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[hurd] 14/17: Make sure to complete auth_server_authenticate


From: Samuel Thibault
Subject: [hurd] 14/17: Make sure to complete auth_server_authenticate
Date: Mon, 15 Feb 2016 09:10:03 +0000

This is an automated email from the git hooks/post-receive script.

sthibault pushed a commit to branch upstream
in repository hurd.

commit 1b6cf043c4083c6a64706d67232363cf78f92975
Author: Samuel Thibault <address@hidden>
Date:   Sun Feb 14 20:05:35 2016 +0100

    Make sure to complete auth_server_authenticate
    
    * boot/boot.c (S_io_reauthenticate): Keep calling auth_server_authenticate
    while it returns EINTR.
    * proc/mgt.c (S_proc_reauthenticate): Likewise.
---
 boot/boot.c |  8 ++++++--
 proc/mgt.c  | 16 +++++++++-------
 2 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/boot/boot.c b/boot/boot.c
index 4dda26b..462243c 100644
--- a/boot/boot.c
+++ b/boot/boot.c
@@ -1601,13 +1601,17 @@ S_io_reauthenticate (mach_port_t object,
                                MACH_MSG_TYPE_MAKE_SEND);
   assert_perror (err);
 
-  if (! auth_server_authenticate (authserver,
+  do
+    err = auth_server_authenticate (authserver,
                                  rend, MACH_MSG_TYPE_COPY_SEND,
                                  object, MACH_MSG_TYPE_COPY_SEND,
                                  &gu, &gulen,
                                  &au, &aulen,
                                  &gg, &gglen,
-                                 &ag, &aglen))
+                                 &ag, &aglen);
+  while (err == EINTR);
+
+  if (!err)
     {
       mig_deallocate ((vm_address_t) gu, gulen * sizeof *gu);
       mig_deallocate ((vm_address_t) au, aulen * sizeof *gu);
diff --git a/proc/mgt.c b/proc/mgt.c
index dacce46..128a1c8 100644
--- a/proc/mgt.c
+++ b/proc/mgt.c
@@ -110,13 +110,15 @@ S_proc_reauthenticate (struct proc *p, mach_port_t 
rendport)
 
   /* Release the global lock while blocking on the auth server and client.  */
   pthread_mutex_unlock (&global_lock);
-  err = auth_server_authenticate (authserver,
-                                 rendport, MACH_MSG_TYPE_COPY_SEND,
-                                 MACH_PORT_NULL, MACH_MSG_TYPE_COPY_SEND,
-                                 &gen_uids, &ngen_uids,
-                                 &aux_uids, &naux_uids,
-                                 &gen_gids, &ngen_gids,
-                                 &aux_gids, &naux_gids);
+  do
+    err = auth_server_authenticate (authserver,
+                                   rendport, MACH_MSG_TYPE_COPY_SEND,
+                                   MACH_PORT_NULL, MACH_MSG_TYPE_COPY_SEND,
+                                   &gen_uids, &ngen_uids,
+                                   &aux_uids, &naux_uids,
+                                   &gen_gids, &ngen_gids,
+                                   &aux_gids, &naux_gids);
+  while (err == EINTR);
   pthread_mutex_lock (&global_lock);
 
   if (err)

-- 
Alioth's /usr/local/bin/git-commit-notice on 
/srv/git.debian.org/git/pkg-hurd/hurd.git



reply via email to

[Prev in Thread] Current Thread [Next in Thread]