From 406cebe735af917b43878f4a0dbe4e633f15a9f8 Mon Sep 17 00:00:00 2001 From: ImFovery <45708393+ImFovery@users.noreply.github.com> Date: Thu, 29 Jul 2021 10:08:39 +0800 Subject: [PATCH] Update sockets.c MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1、更正lwip_accept()中调用netconn_peer()失败时,netconn_delete()会被调用两次,从而导致进入rt_assert_handler()错误。 原因:(https://savannah.nongnu.org/bugs/?55536) bug #55536: lwIP 2.1.2: netconn_delete() called twice from lwip_accept() --- components/net/lwip-2.1.2/src/api/sockets.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/net/lwip-2.1.2/src/api/sockets.c b/components/net/lwip-2.1.2/src/api/sockets.c index 4fea5b3727..70dae165fb 100644 --- a/components/net/lwip-2.1.2/src/api/sockets.c +++ b/components/net/lwip-2.1.2/src/api/sockets.c @@ -710,7 +710,7 @@ lwip_accept(int s, struct sockaddr *addr, socklen_t *addrlen) err = netconn_peer(newconn, &naddr, &port); if (err != ERR_OK) { LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_accept(%d): netconn_peer failed, err=%d\n", s, err)); - netconn_delete(newconn); + //netconn_delete(newconn); free_socket(nsock, 1); sock_set_errno(sock, err_to_errno(err)); done_socket(sock);