From fba8aff7af450e476e97b62385427dfa51850955 Mon Sep 17 00:00:00 2001 From: Dmitry Davydov Date: Sat, 22 Jun 2024 02:16:04 +0700 Subject: [PATCH] [Bug #20592] Fix segfault when sending NULL to freeaddrinfo On alpine freeaddrinfo does not accept NULL pointer --- ext/socket/raddrinfo.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ext/socket/raddrinfo.c b/ext/socket/raddrinfo.c index 3d27fc30b9..0611bdcd52 100644 --- a/ext/socket/raddrinfo.c +++ b/ext/socket/raddrinfo.c @@ -278,7 +278,7 @@ void rb_freeaddrinfo(struct rb_addrinfo *ai) { if (!ai->allocated_by_malloc) - freeaddrinfo(ai->ai); + if (ai->ai) freeaddrinfo(ai->ai); else { struct addrinfo *ai1, *ai2; ai1 = ai->ai; @@ -423,7 +423,7 @@ do_getaddrinfo(void *ptr) arg->err = err; arg->gai_errno = gai_errno; if (arg->cancelled) { - freeaddrinfo(arg->ai); + if (arg->ai) freeaddrinfo(arg->ai); } else { arg->done = 1;