From 538aac00ad1316347f9faeb8f2af5f4bed1ed2e6 Mon Sep 17 00:00:00 2001 From: Gunar Schorcht <gunar@schorcht.net> Date: Wed, 23 Jan 2019 10:33:26 +0100 Subject: [PATCH] cpu/esp8266: fix of allocated pbuf in esp_wifi --- cpu/esp8266/esp-wifi/esp_wifi_netdev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cpu/esp8266/esp-wifi/esp_wifi_netdev.c b/cpu/esp8266/esp-wifi/esp_wifi_netdev.c index cd1d58561f..19abe687be 100644 --- a/cpu/esp8266/esp-wifi/esp_wifi_netdev.c +++ b/cpu/esp8266/esp-wifi/esp_wifi_netdev.c @@ -68,6 +68,9 @@ #define MAC_STR "%02x:%02x:%02x:%02x:%02x:%02x" #define MAC_STR_ARG(m) m[0], m[1], m[2], m[3], m[4], m[5] + +#define PBUF_IEEE80211_HLEN (36) + /** Timer used to reconnect automatically after 20 seconds if not connected */ static xtimer_t _esp_wifi_reconnect_timer; @@ -328,7 +331,7 @@ static int IRAM _send(netdev_t *netdev, const iolist_t *iolist) struct netif *sta_netif = (struct netif *)eagle_lwip_getif(ESP_WIFI_STATION_IF); netif_set_default(sta_netif); - struct pbuf *pb = pbuf_alloc(PBUF_LINK, iol_len, PBUF_RAM); + struct pbuf *pb = pbuf_alloc(PBUF_LINK, iol_len + PBUF_IEEE80211_HLEN, PBUF_RAM); if (pb == NULL || pb->tot_len < iol_len) { ESP_WIFI_DEBUG("could not allocate buffer to send %d bytes ", iol_len); /* -- GitLab