From 5e9d80fbdb560912f32acb360a4ded33e05e357f Mon Sep 17 00:00:00 2001 From: goldsimon Date: Thu, 17 May 2007 09:04:36 +0000 Subject: [PATCH] tcpip_input()/tcpip_ethinput(): don't free the pbuf if returning ERR_MEM, that is the netif driver's responsibility --- src/api/tcpip.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/api/tcpip.c b/src/api/tcpip.c index 430e85e6..94f82dd9 100644 --- a/src/api/tcpip.c +++ b/src/api/tcpip.c @@ -150,10 +150,10 @@ ethernet_input(struct pbuf *p, struct netif *netif) switch (htons(ethhdr->type)) { /* IP packet? */ case ETHTYPE_IP: - #if ETHARP_TRUST_IP_MAC +#if ETHARP_TRUST_IP_MAC /* update ARP table */ etharp_ip_input( netif, p); - #endif +#endif /* skip Ethernet header */ if(pbuf_header(p, -(s16_t)sizeof(struct eth_hdr))) { LWIP_ASSERT("Can't move over header in packet", 0); @@ -255,7 +255,6 @@ tcpip_input(struct pbuf *p, struct netif *inp) if (mbox != SYS_MBOX_NULL) { msg = memp_malloc(MEMP_TCPIP_MSG); if (msg == NULL) { - pbuf_free(p); return ERR_MEM; } @@ -278,8 +277,7 @@ tcpip_ethinput(struct pbuf *p, struct netif *inp) if (mbox != SYS_MBOX_NULL) { msg = memp_malloc(MEMP_TCPIP_MSG); if (msg == NULL) { - pbuf_free(p); - return ERR_MEM; + return ERR_MEM; } msg->type = TCPIP_MSG_ETHINPUT;