From 55efa75fdff6a092be14f75bc28648d4071cb4dc Mon Sep 17 00:00:00 2001 From: Dirk Chang Date: Mon, 31 Aug 2020 16:48:50 +0800 Subject: [PATCH] Invalid addrinfo pointer casues skynet asserted in freeaddrinfo on OpenWRT (arm cpu) (#1236) --- skynet-src/socket_server.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/skynet-src/socket_server.c b/skynet-src/socket_server.c index 645c9b2d..7d2aa738 100644 --- a/skynet-src/socket_server.c +++ b/skynet-src/socket_server.c @@ -594,7 +594,7 @@ open_socket(struct socket_server *ss, struct request_open * request, struct sock status = getaddrinfo( request->host, port, &ai_hints, &ai_list ); if ( status != 0 ) { result->data = (void *)gai_strerror(status); - goto _failed; + goto _failed_getaddrinfo; } int sock= -1; for (ai_ptr = ai_list; ai_ptr != NULL; ai_ptr = ai_ptr->ai_next ) { @@ -643,6 +643,7 @@ open_socket(struct socket_server *ss, struct request_open * request, struct sock return -1; _failed: freeaddrinfo( ai_list ); +_failed_getaddrinfo: ss->slot[HASH_ID(id)].type = SOCKET_TYPE_INVALID; return SOCKET_ERR; }