pimd: Fix clang issue with -Waddress-of-packed-member

Recent change in commit: 6b73800ba2

Caused this error to pop up in pim_igmp_mtrace.c:

error: taking address of packed member 'rsp_addr' of class or structure 'igmp_mtrace' may result in an unaligned pointer value [-Werror,-Waddress-of-packed-member]

Follow the pattern used in the code to solve this problem for clang

Signed-off-by: Donald Sharp <sharpd@nvidia.com>
This commit is contained in:
Donald Sharp 2021-03-15 11:12:38 -04:00
parent d588b995f9
commit 531d4171c7

View File

@ -192,11 +192,14 @@ static void mtrace_rsp_init(struct igmp_mtrace_rsp *mtrace_rspp)
static void mtrace_rsp_debug(uint32_t qry_id, int rsp, static void mtrace_rsp_debug(uint32_t qry_id, int rsp,
struct igmp_mtrace_rsp *mrspp) struct igmp_mtrace_rsp *mrspp)
{ {
struct in_addr incoming = mrspp->incoming;
struct in_addr outgoing = mrspp->outgoing;
struct in_addr prev_hop = mrspp->prev_hop;
zlog_debug( zlog_debug(
"Rx mt(%d) qid=%ud arr=%x in=%pI4 out=%pI4 prev=%pI4 proto=%d fwd=%d", "Rx mt(%d) qid=%ud arr=%x in=%pI4 out=%pI4 prev=%pI4 proto=%d fwd=%d",
rsp, ntohl(qry_id), mrspp->arrival, &mrspp->incoming, rsp, ntohl(qry_id), mrspp->arrival, &incoming, &outgoing,
&mrspp->outgoing, &mrspp->prev_hop, mrspp->rtg_proto, &prev_hop, mrspp->rtg_proto, mrspp->fwd_code);
mrspp->fwd_code);
} }
static void mtrace_debug(struct pim_interface *pim_ifp, static void mtrace_debug(struct pim_interface *pim_ifp,
@ -269,10 +272,11 @@ static int mtrace_send_packet(struct interface *ifp,
if (PIM_DEBUG_MTRACE) { if (PIM_DEBUG_MTRACE) {
struct in_addr if_addr; struct in_addr if_addr;
struct in_addr rsp_addr = mtracep->rsp_addr;
if_addr = mtrace_primary_address(ifp); if_addr = mtrace_primary_address(ifp);
zlog_debug("Sending mtrace packet to %pI4 on %pI4", zlog_debug("Sending mtrace packet to %pI4 on %pI4", &rsp_addr,
&mtracep->rsp_addr, &if_addr); &if_addr);
} }
fd = pim_socket_raw(IPPROTO_IGMP); fd = pim_socket_raw(IPPROTO_IGMP);
@ -487,9 +491,11 @@ static int mtrace_send_mc_response(struct pim_instance *pim,
if (c_oil == NULL) { if (c_oil == NULL) {
if (PIM_DEBUG_MTRACE) { if (PIM_DEBUG_MTRACE) {
struct in_addr rsp_addr = mtracep->rsp_addr;
zlog_debug( zlog_debug(
"Dropping mtrace multicast response packet len=%u to %pI4", "Dropping mtrace multicast response packet len=%u to %pI4",
(unsigned int)mtrace_len, &mtracep->rsp_addr); (unsigned int)mtrace_len, &rsp_addr);
} }
return -1; return -1;
} }
@ -532,9 +538,11 @@ static int mtrace_send_response(struct pim_instance *pim,
p_rpf = pim_rp_g(pim, mtracep->rsp_addr); p_rpf = pim_rp_g(pim, mtracep->rsp_addr);
if (p_rpf == NULL) { if (p_rpf == NULL) {
if (PIM_DEBUG_MTRACE) if (PIM_DEBUG_MTRACE) {
zlog_debug("mtrace no RP for %pI4", struct in_addr rsp_addr = mtracep->rsp_addr;
&mtracep->rsp_addr);
zlog_debug("mtrace no RP for %pI4", &rsp_addr);
}
return -1; return -1;
} }
nexthop = p_rpf->source_nexthop; nexthop = p_rpf->source_nexthop;