summaryrefslogtreecommitdiffstats
path: root/src/socket_wrapper.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/socket_wrapper.c')
-rw-r--r--src/socket_wrapper.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/socket_wrapper.c b/src/socket_wrapper.c
index 3bf60f1..61dce97 100644
--- a/src/socket_wrapper.c
+++ b/src/socket_wrapper.c
@@ -7421,6 +7421,7 @@ static int swrap_close(int fd)
{
struct socket_info *si = NULL;
int si_index;
+ int ret_errno = errno;
int ret;
swrap_mutex_lock(&socket_reset_mutex);
@@ -7440,6 +7441,9 @@ static int swrap_close(int fd)
SWRAP_LOCK_SI(si);
ret = libc_close(fd);
+ if (ret == -1) {
+ ret_errno = errno;
+ }
swrap_dec_refcount(si);
@@ -7474,6 +7478,7 @@ out:
swrap_mutex_unlock(&first_free_mutex);
swrap_mutex_unlock(&socket_reset_mutex);
+ errno = ret_errno;
return ret;
}