Applied patch #5146 to handle allocation failures in accept() by Kevin Lawson.

This commit is contained in:
christiaans 2006-06-14 08:02:35 +00:00
parent dd314e1bdf
commit 1f01634029

View File

@ -228,9 +228,6 @@ accept_function(void *arg, struct tcp_pcb *newpcb, err_t err)
if (newconn == NULL) {
return ERR_MEM;
}
newconn->type = NETCONN_TCP;
newconn->pcb.tcp = newpcb;
setup_tcp(newconn);
newconn->recvmbox = sys_mbox_new();
if (newconn->recvmbox == SYS_MBOX_NULL) {
memp_free(MEMP_NETCONN, newconn);
@ -249,6 +246,10 @@ accept_function(void *arg, struct tcp_pcb *newpcb, err_t err)
memp_free(MEMP_NETCONN, newconn);
return ERR_MEM;
}
/* Allocations were OK, setup the PCB etc */
newconn->type = NETCONN_TCP;
newconn->pcb.tcp = newpcb;
setup_tcp(newconn);
newconn->acceptmbox = SYS_MBOX_NULL;
newconn->err = err;
/* Register event with callback */