aboutsummaryrefslogtreecommitdiff
path: root/lwip
diff options
context:
space:
mode:
Diffstat (limited to 'lwip')
-rw-r--r--lwip/io-ops.c6
-rw-r--r--lwip/port-objs.c5
2 files changed, 9 insertions, 2 deletions
diff --git a/lwip/io-ops.c b/lwip/io-ops.c
index 89d596a4..2e666ab2 100644
--- a/lwip/io-ops.c
+++ b/lwip/io-ops.c
@@ -317,7 +317,11 @@ lwip_S_io_reauthenticate (struct sock_user * user, mach_port_t rend)
aux_uids = aubuf;
aux_gids = agbuf;
- 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)
+ return 0;
auth = getauth ();
newright = ports_get_send_right (newuser);
diff --git a/lwip/port-objs.c b/lwip/port-objs.c
index 07bcab8f..70e1aeaf 100644
--- a/lwip/port-objs.c
+++ b/lwip/port-objs.c
@@ -118,7 +118,10 @@ make_sock_user (struct socket *sock, int isroot, int noinstall, int consume)
err = ports_create_port (socketport_class, lwip_bucket,
sizeof (struct sock_user), &user);
if (err)
- return 0;
+ {
+ errno = err;
+ return 0;
+ }
if (!consume)
refcount_ref (&sock->refcnt);