aboutsummaryrefslogtreecommitdiff
path: root/pfinet/io-ops.c
diff options
context:
space:
mode:
Diffstat (limited to 'pfinet/io-ops.c')
-rw-r--r--pfinet/io-ops.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/pfinet/io-ops.c b/pfinet/io-ops.c
index e0e1875b..c1b6e5b5 100644
--- a/pfinet/io-ops.c
+++ b/pfinet/io-ops.c
@@ -374,7 +374,14 @@ S_io_reauthenticate (struct sock_user *user,
aux_gids = agbuf;
pthread_mutex_lock (&global_lock);
- newuser = make_sock_user (user->sock, 0, 1, 0);
+ do
+ newuser = make_sock_user (user->sock, 0, 1, 0);
+ while (!newuser && errno == EINTR);
+ if (!newuser)
+ {
+ pthread_mutex_unlock (&global_lock);
+ return 0;
+ }
auth = getauth ();
newright = ports_get_send_right (newuser);