Skip to content
  • Thomas Huth's avatar
    slirp: Fix packet expiration · 2b440432
    Thomas Huth authored
    
    
    The two new variables "arp_requested" and "expiration_date" in the mbuf
    structure have been added after the variable-sized "m_dat_" array. The
    variables have to be added before the m_dat_ array instead.
    Without this patch, the expiration_date gets clobbered by code that
    accesses the m_dat_ array.
    I experienced this problem with the code in slirp/tftp.c: The
    tftp_send_data() function created a new packet with the m_get()
    function (which fills-in a default expiration_date value). Then the
    TFTP code cleared the data section of the packet, which accidentially
    also cleared the expiration_date. This zeroed expiration_date then
    finally causes the packet to be discarded during if_start(), so that
    TFTP packets were not transmitted anymore.
    
    [Jan: added comment as suggested by Fabien ]
    
    CC: Fabien Chouteau <chouteau@adacore.com>
    Signed-off-by: default avatarThomas Huth <thuth@linux.vnet.ibm.com>
    Signed-off-by: default avatarJan Kiszka <jan.kiszka@siemens.com>
    2b440432