From: Alan T. DeKok Date: Fri, 20 Dec 2024 15:20:17 +0000 (-0500) Subject: get cmsg after setting controllen X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ece39104eeed51a60913be8d6087b96d51a42d73;p=thirdparty%2Ffreeradius-server.git get cmsg after setting controllen --- diff --git a/src/lib/bio/fd.c b/src/lib/bio/fd.c index d265edeb0d3..896dd62fc21 100644 --- a/src/lib/bio/fd.c +++ b/src/lib/bio/fd.c @@ -427,14 +427,13 @@ static ssize_t fr_bio_fd_sendfromto4(fr_bio_t *bio, void *packet_ctx, const void .msg_flags = 0, }; - cmsg = CMSG_FIRSTHDR(&my->msgh); - { #ifdef IP_PKTINFO struct in_pktinfo *pkt; my->msgh.msg_controllen = CMSG_SPACE(sizeof(*pkt)); + cmsg = CMSG_FIRSTHDR(&my->msgh); cmsg->cmsg_level = SOL_IP; cmsg->cmsg_type = IP_PKTINFO; cmsg->cmsg_len = CMSG_LEN(sizeof(*pkt)); @@ -449,6 +448,7 @@ static ssize_t fr_bio_fd_sendfromto4(fr_bio_t *bio, void *packet_ctx, const void my->msgh.msg_controllen = CMSG_SPACE(sizeof(*in)); + cmsg = CMSG_FIRSTHDR(&my->msgh); cmsg->cmsg_level = IPPROTO_IP; cmsg->cmsg_type = IP_SENDSRCADDR; cmsg->cmsg_len = CMSG_LEN(sizeof(*in)); @@ -575,13 +575,12 @@ static ssize_t fr_bio_fd_sendfromto6(fr_bio_t *bio, void *packet_ctx, const void .msg_flags = 0, }; - cmsg = CMSG_FIRSTHDR(&my->msgh); - { struct in6_pktinfo *pkt; my->msgh.msg_controllen = CMSG_SPACE(sizeof(*pkt)); + cmsg = CMSG_FIRSTHDR(&my->msgh); cmsg->cmsg_level = IPPROTO_IPV6; cmsg->cmsg_type = IPV6_PKTINFO; cmsg->cmsg_len = CMSG_LEN(sizeof(*pkt)); diff --git a/src/protocols/radius/bio.c b/src/protocols/radius/bio.c index 0e639eae56f..aa6687ba81b 100644 --- a/src/protocols/radius/bio.c +++ b/src/protocols/radius/bio.c @@ -79,7 +79,7 @@ fr_bio_verify_action_t fr_radius_bio_verify_datagram(UNUSED fr_bio_t *bio, void want = fr_nbo_to_uint16(hdr + 2); if (uctx->max_packet_size && (want > uctx->max_packet_size)) { - return FR_BIO_VERIFY_ERROR_DISCARD; + return FR_BIO_VERIFY_DISCARD; } /*