• Earle F. Philhower, III's avatar
    Fix LWIP crash on unexpected ping packets (#2159) · d4cdb3ea
    Earle F. Philhower, III authored
    When a ping is sent from the Pico, a raw_recv callback is added which
    sees all raw incoming packets to detect the response from the ping target.
    If while waiting for the target response an external ping packet arrives
    this incoming ping request packet will be processed by the
    LwipIntfDev<>::_pingCB which will return "0" not processed and which
    *should* not change the payload unless it handles the actual packet.
    
    Unfortunately, the 20 byte header was unconditionally stripped off of
    the packet before checking if this was our response, changing the
    payload address and causing an assertion in LWIP.
    
    Fix by using absolute offsets inside the raw packet for the ping
    response checks.
    
    Fixes #2156
    Fixes #2149
    d4cdb3ea
LwipIntfDev.h 17.7 KB