mirror of
https://github.com/lwip-tcpip/lwip.git
synced 2025-01-01 12:00:53 +00:00
Fix netconn/socket race condition when receiving RST while waiting on recvmbox
This commit is contained in:
parent
ed239c4e71
commit
0a343948d9
@ -544,6 +544,10 @@ netconn_recv_data(struct netconn *conn, void **new_buf)
|
||||
/* If we are closed, we indicate that we no longer wish to use the socket */
|
||||
if (buf == NULL) {
|
||||
API_EVENT(conn, NETCONN_EVT_RCVMINUS, 0);
|
||||
if (conn->pcb.ip == NULL) {
|
||||
/* race condition: RST during recv */
|
||||
return conn->last_err == ERR_OK ? ERR_RST : conn->last_err;
|
||||
}
|
||||
/* RX side is closed, so deallocate the recvmbox */
|
||||
netconn_close_shutdown(conn, NETCONN_SHUT_RD);
|
||||
/* Don' store ERR_CLSD as conn->err since we are only half-closed */
|
||||
|
Loading…
Reference in New Issue
Block a user