[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[lwip-devel] [bug #55536] lwIP 2.1.2: netconn_delete() called twice from
From: |
Stanislav Pobořil |
Subject: |
[lwip-devel] [bug #55536] lwIP 2.1.2: netconn_delete() called twice from lwip_accept() |
Date: |
Mon, 21 Jan 2019 06:56:30 -0500 (EST) |
User-agent: |
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:64.0) Gecko/20100101 Firefox/64.0 |
URL:
<https://savannah.nongnu.org/bugs/?55536>
Summary: lwIP 2.1.2: netconn_delete() called twice from
lwip_accept()
Project: lwIP - A Lightweight TCP/IP stack
Submitted by: spoboril
Submitted on: Mon 21 Jan 2019 11:56:28 AM UTC
Category: sockets/netconn
Severity: 3 - Normal
Item Group: Crash Error
Status: None
Privacy: Public
Assigned to: None
Open/Closed: Open
Discussion Lock: Any
Planned Release: None
lwIP version: Other
_______________________________________________________
Details:
Below is a code snippet from lwip_accept().
If netconn_peer() fails, lwIP ends hanged in a "netconn state error" assert. I
think the reason is that netconn_delete() is called twice, once directly and
then also from free_socket().
Removing the netconn_delete() call done before the free_socket() call seems to
solve the problem for me.
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);
free_socket(nsock, 1);
sock_set_errno(sock, err_to_errno(err));
done_socket(sock);
return -1;
}
_______________________________________________________
Reply to this item at:
<https://savannah.nongnu.org/bugs/?55536>
_______________________________________________
Message sent via Savannah
https://savannah.nongnu.org/
- [lwip-devel] [bug #55536] lwIP 2.1.2: netconn_delete() called twice from lwip_accept(),
Stanislav Pobořil <=