From df816f4940948466099aa9af5e4db288c5284eb6 Mon Sep 17 00:00:00 2001 From: Angus Gratton Date: Thu, 21 Jun 2018 15:22:48 +1000 Subject: [PATCH] lwip: Fix leak when accept() fails due to max socket limit As reported https://esp32.com/viewtopic.php?f=14&t=6171 event_callback() in sockets.c calls conn->socket-- to register activity on a netconn which may not have any socket yet, so any socket value < 0 indicates "no controlling socket" for the netconn. --- components/lwip/api/api_lib.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/lwip/api/api_lib.c b/components/lwip/api/api_lib.c index 42d80a1ee..db6f459c8 100644 --- a/components/lwip/api/api_lib.c +++ b/components/lwip/api/api_lib.c @@ -139,7 +139,7 @@ netconn_new_with_proto_and_callback(enum netconn_type t, u8_t proto, netconn_cal static inline bool is_created_by_socket(struct netconn *conn) { #if LWIP_SOCKET - if (conn && (conn->socket != -1)) { + if (conn && (conn->socket >= 0)) { return true; } #endif