From f31a2caa93106a905e4fa8731dd2fad9beb4c19d Mon Sep 17 00:00:00 2001 From: Keir Fraser Date: Tue, 25 Mar 2008 17:56:09 +0000 Subject: [PATCH] mini-os: free dropped lwip packets When lwIP can not accept a packet, it is up to us to free it. Signed-off-by: Samuel Thibault --- lwip-net.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/lwip-net.c b/lwip-net.c index da4f1fd..2e68279 100644 --- a/lwip-net.c +++ b/lwip-net.c @@ -206,13 +206,16 @@ netfront_input(struct netif *netif, unsigned char* data, int len) /* skip Ethernet header */ pbuf_header(p, -(s16)sizeof(struct eth_hdr)); /* pass to network layer */ - tcpip_input(p, netif); + if (tcpip_input(p, netif) == ERR_MEM) + /* Could not store it, drop */ + pbuf_free(p); break; case ETHTYPE_ARP: /* pass p to ARP module */ etharp_arp_input(netif, (struct eth_addr *) netif->hwaddr, p); break; + default: pbuf_free(p); p = NULL; -- 2.39.5