diff options
| author | Dmitry Davydov <haudvd@gmail.com> | 2024-06-22 02:16:04 +0700 |
|---|---|---|
| committer | Yusuke Endoh <mame@ruby-lang.org> | 2024-06-22 22:05:31 +0900 |
| commit | fba8aff7af450e476e97b62385427dfa51850955 (patch) | |
| tree | 6b96bab216f0f66d8fce2e0a428d7412a6558817 | |
| parent | d122a68863f4438c4db594cf67a12348c151aae9 (diff) | |
[Bug #20592] Fix segfault when sending NULL to freeaddrinfo
On alpine freeaddrinfo does not accept NULL pointer
| -rw-r--r-- | ext/socket/raddrinfo.c | 4 |
1 files 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; |
