Skip to content
  • Aurelien Jarno's avatar
    slirp: fix unaligned access in bootp code · 8aaf42ed
    Aurelien Jarno authored
    
    
    Slirp code tries to be smart an avoid data copy by using pointer to
    the data. This solution leads to unaligned access, in this case
    preq_addr, which is a 32-bit long structure. There is no real point
    of avoiding data copy in a such case, as the value itself is smaller
    or the same size as a pointer.
    
    The patch replaces pointers to the preq_addr structure by the strcture
    itself, and use the address 0.0.0.0 if no address has been requested
    (this is not a valid address in such a request). It compares it with
    htonl(0L) for correctness reasons, in case a code checker look for such
    mistakes. It also uses memcpy() for copying the data, which takes care
    of alignement issues.
    
    This fixes an unaligned access on IA64 host while requesting a DHCP
    address.
    
    Signed-off-by: default avatarAurelien Jarno <aurelien@aurel32.net>
    8aaf42ed