CRC16 was removed by simply decreasing length of the last fragment by 2. This worked as long as last fragment was longer than 1 byte. If not, then last fragment was corrupted (its length ended up being 65535), leading to undefined behavior. Fix CRC16 removal by utilizing recently introduced net_pkt_remove_tail(), that properly handles multiple fragments. Reported-by: Jim Paris <jim@jim.sh> Signed-off-by: Marcin Niestroj <m.niestroj@emb.dev> |
||
|---|---|---|
| .. | ||
| CMakeLists.txt | ||
| Kconfig | ||
| loopback.c | ||
| ppp.c | ||
| slip.c | ||