]> git.puffer.fish Git - matthieu/frr.git/commitdiff
pimd: Fix clang issue with -Waddress-of-packed-member
authorDonald Sharp <sharpd@nvidia.com>
Mon, 15 Mar 2021 15:12:38 +0000 (11:12 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Mon, 15 Mar 2021 15:46:44 +0000 (11:46 -0400)
Recent change in commit: 6b73800ba27e7f69453a191dfb873c2e07194516

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>
pimd/pim_igmp_mtrace.c

index 5223fcf311a55b46588a1ce9d6e6e195957ffd31..d36a275f85e6b18e38c86306d0bf07eed46d4943 100644 (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,
                             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(
                "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,
-               &mrspp->outgoing, &mrspp->prev_hop, mrspp->rtg_proto,
-               mrspp->fwd_code);
+               rsp, ntohl(qry_id), mrspp->arrival, &incoming, &outgoing,
+               &prev_hop, mrspp->rtg_proto, mrspp->fwd_code);
 }
 
 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) {
                struct in_addr if_addr;
+               struct in_addr rsp_addr = mtracep->rsp_addr;
 
                if_addr = mtrace_primary_address(ifp);
-               zlog_debug("Sending mtrace packet to %pI4 on %pI4",
-                          &mtracep->rsp_addr, &if_addr);
+               zlog_debug("Sending mtrace packet to %pI4 on %pI4", &rsp_addr,
+                          &if_addr);
        }
 
        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 (PIM_DEBUG_MTRACE) {
+                       struct in_addr rsp_addr = mtracep->rsp_addr;
+
                        zlog_debug(
                                "Dropping mtrace multicast response packet len=%u to %pI4",
-                               (unsigned int)mtrace_len, &mtracep->rsp_addr);
+                               (unsigned int)mtrace_len, &rsp_addr);
                }
                return -1;
        }
@@ -532,9 +538,11 @@ static int mtrace_send_response(struct pim_instance *pim,
                p_rpf = pim_rp_g(pim, mtracep->rsp_addr);
 
                if (p_rpf == NULL) {
-                       if (PIM_DEBUG_MTRACE)
-                               zlog_debug("mtrace no RP for %pI4",
-                                          &mtracep->rsp_addr);
+                       if (PIM_DEBUG_MTRACE) {
+                               struct in_addr rsp_addr = mtracep->rsp_addr;
+
+                               zlog_debug("mtrace no RP for %pI4", &rsp_addr);
+                       }
                        return -1;
                }
                nexthop = p_rpf->source_nexthop;