diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2020-01-05 01:32:49 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2020-01-05 01:32:49 +0100 |
commit | 05a15f8c43e7a167983f19bd866b90158661703e (patch) | |
tree | a71d747f75f2155f49eb04e32ef0066b0a89dd4c /lwip/port-objs.c | |
parent | 89c9590e020e1372cfab037b7789aaef89b4f544 (diff) | |
download | hurd-05a15f8c43e7a167983f19bd866b90158661703e.tar.gz hurd-05a15f8c43e7a167983f19bd866b90158661703e.tar.bz2 hurd-05a15f8c43e7a167983f19bd866b90158661703e.zip |
lwip,pfinet: Fix crash on make_sock_user getting EINTR
_ports_create_port_internal may return EINTR.
* lwip/port-objs.c (make_sock_user): Set errno when ports_create_port
returns an error.
* pfinet/socket.c (make_sock_user): Likewise.
* lwip/io-ops.c (lwip_S_io_reauthenticate): Loop while make_sock_user
errors with EINTR.
* pfinet/io-ops.c (S_io_reauthenticate): Likewise.
Diffstat (limited to 'lwip/port-objs.c')
-rw-r--r-- | lwip/port-objs.c | 5 |
1 files changed, 4 insertions, 1 deletions
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); |