V4.4.0
Changes between FreeRTOS-plus-TCP V4.4.0 and V4.3.1 released February 25, 2026:
- [Security] Fix CWE-126/476/822: IPv6 buffer validation and bounds checking. Fix missing NULL pointer checks in ND, add ICMPv6 minimum packet size validation, move IPv6 version field check after buffer validation, and fix integer wrap-around in IPv6 payload length processing.
- [Security] Fix potential out of bounds write (CWE-787) when processing LLMNR or mDNS queries (#1258).
- Fix DHCP race condition (#1230).
- Fix possible network buffer leak in DHCP v4 and v6 state machines (#1231).
- Fix ARP lookups for gateway address when destination is outside of subnet (#1248)
- Fix endpoint mismatch in FreeRTOS_MatchingEndpoint (#1239)
- Fix compilation error if DNS features are disabled (#1243)
- Fix buffer allocation failure handling in STM32 NetworkInterface
- Fix Windows Simulator demo build failures by adding missing windows.h includes (#1305).
- Fix TI CCS compiler errors (#1281)
- Fix warning concerning return value of non-void function (#1275)
- Fix IPv4 and IPv6 broadcast address detection
- Fix IPv6 loopback type detection (#1220)
- Fix Zynq network interface incoming packet filtering by correcting endianness.
- Fix printf format warnings by casting to unsigned long (#1222)
- Fix smsc9220_eth_drv.c warnings from gcc -Wconversion (#1245)
- Fix Coverity dead code and MISRA 10.4 findings.
- Use the expected sequence number for challenge ACK messages (#1236)
- mDNS: when a reply do not repeat the questions, set authoritative flag (#1292)
- Allow the use of IP-clash detection, also when auto-IP is not enabled (#1299)
- Let valid broadcast packets in when endpoint is not yet up (#1240).
- Update IPv4 packet filtering to let packets destined to endpoint's MAC address when endpoint is not yet up (#1232).
- Add ipconfigIP_TASK_AFFINITY (#1288)
- Add configuration option to prevent configASSERT checks on ipBUFFER_PADDING (#1271)
- Add #include "FreeRTOS_ARP.h" to loopbackNetworkInterface.c (#1290)
- Alternative function for potential optimization of data copying in stream buffers (#1233)
- Support ADIN1200 (#1280)
- Rename ETH_TxPacketConfig in STM32F4 to match other STMs (#1278)
- STM32H legacy driver: change parameter to pucGetRXBuffer() (#1285)
- Zynq driver: avoid race conditions (#1286)
- Zynq port: Add niEMAC_HANDLER_TASK_AFFINITY (#1291)
- Update Zynq portable for Xilinx SDT drivers (#1227)
- Workaround in Zynq port for missing macros when using SDT drivers.
- Remove unused variable in ultrascale port (ulDMAReg) (#1269)
- Avoid portTICK_PERIOD_MS usage in library code (#1242)
- Remove redundant function declaration (#1241)
- Improve maximum network buffer allocation size check when Buffer Allocation scheme 1 is used (#1263).
- Move FreeRTOS_printf from suspended scheduler region in prvAcceptWaitClient (#1250).
- Remove xHigherPriorityTaskWoken (#1215).
- Fix MISRA 2012 violations (#1272).
- Fix MISRA violations.
- Unittest: Fix, enable and forbid specific warnings (#1228)
- Update scripts to run unit tests with respect to Ubuntu 24.04 (#1237).
- Update CI script to use latest lcov (#1251).
- Fix CI: replace hardcoded gcov-9 with gcov.
- Make CBMC use 64 core runners.
- Add CI build with compiler optimizations.