Ticket #19: 03_cmsg_too_large.2.patch

File 03_cmsg_too_large.2.patch, 1.1 kB (added by Sjoerd Simons <sjoerd@…>, 4 years ago)

Proposed patch. Uses the first of the two mentioned fixes. Keeps alignment stuff for ia64 right :).. Testen on sparc64

  • avahi-core/socket.c

     
    513513            pkti->ipi_spec_dst.s_addr = src_address->address; 
    514514 
    515515        msg.msg_control = cmsg_data; 
    516         msg.msg_controllen = sizeof(cmsg_data); 
     516        msg.msg_controllen = CMSG_SPACE(sizeof(struct in_pktinfo)); 
    517517    } 
    518518#elif defined(IP_SENDSRCADDR) 
    519519    if (src_address) { 
     
    529529    addr->s_addr =  src_address->address; 
    530530     
    531531    msg.msg_control = cmsg_data; 
    532     msg.msg_controllen = sizeof(cmsg_data); 
     532    msg.msg_controllen = CMSG_SPACE(sizeof(struct in_addr)); 
    533533    } 
    534534#elif defined(IP_MULTICAST_IF) 
    535535    { 
     
    592592            memcpy(&pkti->ipi6_addr, src_address->address, sizeof(src_address->address)); 
    593593         
    594594        msg.msg_control = cmsg_data; 
    595         msg.msg_controllen = sizeof(cmsg_data); 
     595        msg.msg_controllen = CMSG_SPACE(sizeof(struct in6_pktinfo)); 
    596596    } else { 
    597597        msg.msg_control = NULL; 
    598598        msg.msg_controllen = 0;