commit-hurd
[Top][All Lists]
Advanced

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

[hurd] 15/17: Fix hang on reauthentication


From: Samuel Thibault
Subject: [hurd] 15/17: Fix hang on reauthentication
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 9e6649f31e1769ca3b2545993ef51f2039848719
Author: Samuel Thibault <address@hidden>
Date:   Sun Feb 14 20:29:11 2016 +0100

    Fix hang on reauthentication
    
    One needs to keep the port being reauthenticated alive until we are sure the
    server has complete authentication.
    
    * libfshelp/fetch-root.c (fshelp_fetch_root): Deallocate `port' after
    auth_user_authenticate has completed.
    * trans/fakeroot.c (netfs_S_dir_lookup): Likewise with `file'.
---
 libfshelp/fetch-root.c | 2 +-
 trans/fakeroot.c       | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/libfshelp/fetch-root.c b/libfshelp/fetch-root.c
index 1b6739e..d7761e5 100644
--- a/libfshelp/fetch-root.c
+++ b/libfshelp/fetch-root.c
@@ -75,10 +75,10 @@ fshelp_fetch_root (struct transbox *box, void *cookie,
          /* MAKE_SEND is safe here because we destroy REND ourselves. */
          err = io_reauthenticate (port, rend,
                                   MACH_MSG_TYPE_MAKE_SEND);
-         mach_port_deallocate (mach_task_self (), port);
          if (! err)
            err = auth_user_authenticate (newauth, rend,
                                          MACH_MSG_TYPE_MAKE_SEND, &ret);
+         mach_port_deallocate (mach_task_self (), port);
          if (err)
            ret = MACH_PORT_NULL;
 
diff --git a/trans/fakeroot.c b/trans/fakeroot.c
index 84b4efc..64f3208 100644
--- a/trans/fakeroot.c
+++ b/trans/fakeroot.c
@@ -308,10 +308,10 @@ netfs_S_dir_lookup (struct protid *diruser,
        err = io_reauthenticate (file, ref, MACH_MSG_TYPE_MAKE_SEND);
        if (! err)
          {
-           mach_port_deallocate (mach_task_self (), file);
            err = auth_user_authenticate (fakeroot_auth_port, ref,
                                          MACH_MSG_TYPE_MAKE_SEND,
                                          &dir);
+           mach_port_deallocate (mach_task_self (), file);
          }
        mach_port_destroy (mach_task_self (), ref);
        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]