]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/mini-os.git/commitdiff
mini-os: free dropped lwip packets
authorKeir Fraser <keir.fraser@citrix.com>
Tue, 25 Mar 2008 17:56:09 +0000 (17:56 +0000)
committerKeir Fraser <keir.fraser@citrix.com>
Tue, 25 Mar 2008 17:56:09 +0000 (17:56 +0000)
When lwIP can not accept a packet, it is up to us to free it.

Signed-off-by: Samuel Thibault <samuel.thibault@eu.citrix.com>
lwip-net.c

index da4f1fd2095cc122ba379d374b822642ac6596d1..2e68279c6f0e1abd0e99ff45784308acd669bc7e 100644 (file)
@@ -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;