Просмотр исходного кода

fix: net_lwip2,处理DNS响应的逻辑中,pbuf_take的目标pbuf就是错误的,导致随机死机的可能 性

Signed-off-by: Wendal <wendal1985@gmail.com>
Wendal 4 месяцев назад
Родитель
Сommit
20e5458404
1 измененных файлов с 1 добавлено и 1 удалено
  1. 1 1
      components/network/adapter_lwip2/net_lwip2.c

+ 1 - 1
components/network/adapter_lwip2/net_lwip2.c

@@ -500,7 +500,7 @@ static err_t net_lwip2_dns_recv_cb(void *arg, struct udp_pcb *pcb, struct pbuf *
 				out_p = pbuf_alloc(PBUF_TRANSPORT, tx_msg_buf.Pos, PBUF_RAM);
 				out_p = pbuf_alloc(PBUF_TRANSPORT, tx_msg_buf.Pos, PBUF_RAM);
 				if (out_p && NULL != tx_msg_buf.Data)
 				if (out_p && NULL != tx_msg_buf.Data)
 				{
 				{
-					pbuf_take(p, tx_msg_buf.Data, tx_msg_buf.Pos);
+					pbuf_take(out_p, tx_msg_buf.Data, tx_msg_buf.Pos);
 					prvlwip.dns_udp[adapter_index]->local_ip = prvlwip.lwip_netif[adapter_index]->ip_addr;
 					prvlwip.dns_udp[adapter_index]->local_ip = prvlwip.lwip_netif[adapter_index]->ip_addr;
 					ipaddr_ntoa_r(&prvlwip.dns_client.dns_server[i], ip_string, sizeof(ip_string));
 					ipaddr_ntoa_r(&prvlwip.dns_client.dns_server[i], ip_string, sizeof(ip_string));
 					LLOGD("dns udp sendto %s:%d", ip_string, DNS_SERVER_PORT);
 					LLOGD("dns udp sendto %s:%d", ip_string, DNS_SERVER_PORT);