Kaynağa Gözat

discard packet when tcp_input error occurs.

git-svn-id: https://rt-thread.googlecode.com/svn/trunk@485 bbd45198-f89e-11dd-88c7-29a3b14d5316
bernard.xiong 15 yıl önce
ebeveyn
işleme
b437fc5924
1 değiştirilmiş dosya ile 5 ekleme ve 1 silme
  1. 5 1
      net/lwip/src/netif/ethernetif.c

+ 5 - 1
net/lwip/src/netif/ethernetif.c

@@ -64,7 +64,11 @@ err_t eth_input(struct pbuf *p, struct netif *inp)
 		case ETHTYPE_IP:
 			etharp_ip_input(inp, p);
 			pbuf_header(p, -((rt_int16_t)sizeof(struct eth_hdr)));
-			tcpip_input(p, inp);
+			if (tcpip_input(p, inp) != ERR_OK)
+			{
+				/* discard packet */
+				pbuf_free(p);
+			}
 			break;
 
 		case ETHTYPE_ARP: