diff options
| author | Igor Ryzhov <iryzhov@nfware.com> | 2021-06-02 20:03:52 +0300 | 
|---|---|---|
| committer | Igor Ryzhov <iryzhov@nfware.com> | 2021-06-29 16:11:47 +0300 | 
| commit | b08dcc3f3f0b128b4662f3be86eb53075e93ac9f (patch) | |
| tree | a5d0029da0b919ab46468fb0abb011f827d7df3c | |
| parent | 176d039a2792f4ccc901a4b04efeb934fdeec050 (diff) | |
*: unify prefix copying
There are a few places in the code where we use PREFIX_COPY(_IPV4/IPV6)
macro to copy a prefix. Let's always use prefix_copy function for this.
This should fix CID 1482142 and 1504610.
Signed-off-by: Igor Ryzhov <iryzhov@nfware.com>
| -rw-r--r-- | bgpd/bgp_flowspec_util.c | 8 | ||||
| -rw-r--r-- | bgpd/bgpd.c | 2 | ||||
| -rw-r--r-- | eigrpd/eigrp_network.c | 2 | ||||
| -rw-r--r-- | lib/prefix.h | 8 | ||||
| -rw-r--r-- | zebra/connected.c | 12 | 
5 files changed, 10 insertions, 22 deletions
diff --git a/bgpd/bgp_flowspec_util.c b/bgpd/bgp_flowspec_util.c index 23baa0184e..348dc7c9d1 100644 --- a/bgpd/bgp_flowspec_util.c +++ b/bgpd/bgp_flowspec_util.c @@ -227,12 +227,8 @@ int bgp_flowspec_ip_address(enum bgp_flowspec_util_nlri_t type,  				   BGP_FLOWSPEC_STRING_DISPLAY_MAX);  		break;  	case BGP_FLOWSPEC_CONVERT_TO_NON_OPAQUE: -		if (prefix) { -			if (prefix_local.family == AF_INET) -				PREFIX_COPY_IPV4(prefix, &prefix_local); -			else -				PREFIX_COPY_IPV6(prefix, &prefix_local); -		} +		if (prefix) +			prefix_copy(prefix, &prefix_local);  		break;  	case BGP_FLOWSPEC_VALIDATE_ONLY:  	default: diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 49562e5874..3ba74b9379 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -1538,7 +1538,7 @@ static int bgp_peer_conf_if_to_su_update_v4(struct peer *peer,  	 */  	for (ALL_LIST_ELEMENTS_RO(ifp->connected, node, ifc)) {  		if (ifc->address && (ifc->address->family == AF_INET)) { -			PREFIX_COPY_IPV4(&p, CONNECTED_PREFIX(ifc)); +			prefix_copy(&p, CONNECTED_PREFIX(ifc));  			if (p.prefixlen == 30) {  				peer->su.sa.sa_family = AF_INET;  				addr = ntohl(p.u.prefix4.s_addr); diff --git a/eigrpd/eigrp_network.c b/eigrpd/eigrp_network.c index 69dcc20253..9a5fbc52b4 100644 --- a/eigrpd/eigrp_network.c +++ b/eigrpd/eigrp_network.c @@ -219,7 +219,7 @@ int eigrp_network_set(struct eigrp *eigrp, struct prefix *p)  	}  	struct prefix *pref = prefix_new(); -	PREFIX_COPY_IPV4(pref, p); +	prefix_copy(pref, p);  	rn->info = (void *)pref;  	/* Schedule Router ID Update. */ diff --git a/lib/prefix.h b/lib/prefix.h index 217a23d561..c47e701dfd 100644 --- a/lib/prefix.h +++ b/lib/prefix.h @@ -481,11 +481,6 @@ extern void prefix_ipv4_free(struct prefix_ipv4 **p);  extern int str2prefix_ipv4(const char *, struct prefix_ipv4 *);  extern void apply_mask_ipv4(struct prefix_ipv4 *); -#define PREFIX_COPY(DST, SRC)                                                  \ -	*((struct prefix *)(DST)) = *((const struct prefix *)(SRC)) -#define PREFIX_COPY_IPV4(DST, SRC)                                             \ -	*((struct prefix_ipv4 *)(DST)) = *((const struct prefix_ipv4 *)(SRC)) -  extern int prefix_ipv4_any(const struct prefix_ipv4 *);  extern void apply_classful_mask_ipv4(struct prefix_ipv4 *); @@ -503,9 +498,6 @@ extern void prefix_ipv6_free(struct prefix_ipv6 **p);  extern int str2prefix_ipv6(const char *, struct prefix_ipv6 *);  extern void apply_mask_ipv6(struct prefix_ipv6 *); -#define PREFIX_COPY_IPV6(DST, SRC)                                             \ -	*((struct prefix_ipv6 *)(DST)) = *((const struct prefix_ipv6 *)(SRC)) -  extern int ip6_masklen(struct in6_addr);  extern void masklen2ip6(const int, struct in6_addr *); diff --git a/zebra/connected.c b/zebra/connected.c index d110ccf6dd..dc7193eb4c 100644 --- a/zebra/connected.c +++ b/zebra/connected.c @@ -198,7 +198,7 @@ static void connected_update(struct interface *ifp, struct connected *ifc)  void connected_up(struct interface *ifp, struct connected *ifc)  {  	afi_t afi; -	struct prefix p = {0}; +	struct prefix p;  	struct nexthop nh = {  		.type = NEXTHOP_TYPE_IFINDEX,  		.ifindex = ifp->ifindex, @@ -225,7 +225,7 @@ void connected_up(struct interface *ifp, struct connected *ifc)  	/* Ensure 'down' flag is cleared */  	UNSET_FLAG(ifc->conf, ZEBRA_IFC_DOWN); -	PREFIX_COPY(&p, CONNECTED_PREFIX(ifc)); +	prefix_copy(&p, CONNECTED_PREFIX(ifc));  	/* Apply mask to the network. */  	apply_mask(&p); @@ -277,9 +277,9 @@ void connected_up(struct interface *ifp, struct connected *ifc)  	 * resolve to the same network and mask  	 */  	for (ALL_LIST_ELEMENTS_RO(ifp->connected, cnode, c)) { -		struct prefix cp = {0}; +		struct prefix cp; -		PREFIX_COPY(&cp, CONNECTED_PREFIX(c)); +		prefix_copy(&cp, CONNECTED_PREFIX(c));  		apply_mask(&cp);  		if (prefix_same(&cp, &p) && @@ -412,7 +412,7 @@ void connected_down(struct interface *ifp, struct connected *ifc)  		return;  	} -	PREFIX_COPY(&p, CONNECTED_PREFIX(ifc)); +	prefix_copy(&p, CONNECTED_PREFIX(ifc));  	/* Apply mask to the network. */  	apply_mask(&p); @@ -450,7 +450,7 @@ void connected_down(struct interface *ifp, struct connected *ifc)  	for (ALL_LIST_ELEMENTS_RO(ifp->connected, cnode, c)) {  		struct prefix cp; -		PREFIX_COPY(&cp, CONNECTED_PREFIX(c)); +		prefix_copy(&cp, CONNECTED_PREFIX(c));  		apply_mask(&cp);  		if (prefix_same(&p, &cp) &&  | 
