diff options
| author | nagachika <nagachika@ruby-lang.org> | 2024-07-20 13:00:32 +0900 |
|---|---|---|
| committer | nagachika <nagachika@ruby-lang.org> | 2024-07-20 13:05:33 +0900 |
| commit | 3fe51aa26867159af574fac8eba7ae86a0b30971 (patch) | |
| tree | 97c89f7aa2e072bacc53cd6283cee77cdd5ba121 /ext/socket | |
| parent | c10c73fd16f1b7c9b658afee2b1b53ecfaed4fa4 (diff) | |
merge revision(s) fba8aff7af450e476e97b62385427dfa51850955, d8c6e91748871ab2287d7703347847fe18a292d2: [Backport #20592]
[Bug #20592] Fix segfault when sending NULL to freeaddrinfo
On alpine freeaddrinfo does not accept NULL pointer
Fix dangling `else`
Diffstat (limited to 'ext/socket')
| -rw-r--r-- | ext/socket/raddrinfo.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/ext/socket/raddrinfo.c b/ext/socket/raddrinfo.c index 269edc4dad..45b4cad38f 100644 --- a/ext/socket/raddrinfo.c +++ b/ext/socket/raddrinfo.c @@ -287,8 +287,9 @@ numeric_getaddrinfo(const char *node, const char *service, void rb_freeaddrinfo(struct rb_addrinfo *ai) { - if (!ai->allocated_by_malloc) - freeaddrinfo(ai->ai); + if (!ai->allocated_by_malloc) { + if (ai->ai) freeaddrinfo(ai->ai); + } else { struct addrinfo *ai1, *ai2; ai1 = ai->ai; |
