From 9a97a80efccda21475b7b2151e51ec0317017b21 Mon Sep 17 00:00:00 2001 From: sg Date: Thu, 18 Feb 2016 19:46:20 +0100 Subject: [PATCH] Fixed bug #47154 lwip_netconn_do_writemore doesn't clear conn->write_offset on fatal/routing error. --- src/api/api_msg.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/api/api_msg.c b/src/api/api_msg.c index 9c9a356d..1d4c099b 100644 --- a/src/api/api_msg.c +++ b/src/api/api_msg.c @@ -1498,7 +1498,6 @@ err_mem: conn->current_msg->msg.w.len = conn->write_offset; /* everything was written */ write_finished = 1; - conn->write_offset = 0; } out_err = tcp_output(conn->pcb.tcp); if (ERR_IS_FATAL(out_err) || (out_err == ERR_RTE)) { @@ -1538,6 +1537,7 @@ err_mem: sys_sem_t* op_completed_sem = LWIP_API_MSG_SEM(conn->current_msg); conn->current_msg->err = err; conn->current_msg = NULL; + conn->write_offset = 0; conn->state = NETCONN_NONE; NETCONN_SET_SAFE_ERR(conn, err); #if LWIP_TCPIP_CORE_LOCKING