diff --git a/ext/socket/raddrinfo.c b/ext/socket/raddrinfo.c index 4ca06021ba..090ba1a0c0 100644 --- a/ext/socket/raddrinfo.c +++ b/ext/socket/raddrinfo.c @@ -493,8 +493,10 @@ start: pthread_t th; if (do_pthread_create(&th, do_getaddrinfo, arg) != 0) { + int err = errno; free_getaddrinfo_arg(arg); - return EAI_AGAIN; + errno = err; + return EAI_SYSTEM; } pthread_detach(th); @@ -712,8 +714,10 @@ start: pthread_t th; if (do_pthread_create(&th, do_getnameinfo, arg) != 0) { + int err = errno; free_getnameinfo_arg(arg); - return EAI_AGAIN; + errno = err; + return EAI_SYSTEM; } pthread_detach(th);