]> granicus.if.org Git - esp-idf/commitdiff
lwip: Fix leak when accept() fails due to max socket limit
authorAngus Gratton <angus@espressif.com>
Thu, 21 Jun 2018 05:22:48 +0000 (15:22 +1000)
committerAngus Gratton <gus@projectgus.com>
Thu, 21 Jun 2018 05:22:48 +0000 (15:22 +1000)
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

index 42d80a1ee310ab8728ff8ba93ed85abd99754d53..db6f459c8f93d243cbf8d8539679b153108e55e1 100644 (file)
@@ -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