diff --git a/dp-core/vr_bridge.c b/dp-core/vr_bridge.c index 4520ca8d9..4aa151631 100644 --- a/dp-core/vr_bridge.c +++ b/dp-core/vr_bridge.c @@ -145,6 +145,9 @@ bridge_table_add(struct vr_rtable * _unused, struct vr_route_req *rt) if (!vn_rtable) return -EINVAL; + if (rt->rtr_req.rtr_mac_size != VR_ETHER_ALEN) + return -EINVAL; + if (IS_MAC_ZERO(rt->rtr_req.rtr_mac)) return -EINVAL; @@ -195,6 +198,9 @@ bridge_table_delete(struct vr_rtable * _unused, struct vr_route_req *rt) if (!vn_rtable) return -EINVAL; + if (rt->rtr_req.rtr_mac_size != VR_ETHER_ALEN) + return -EINVAL; + VR_MAC_COPY(key.be_mac, rt->rtr_req.rtr_mac); key.be_vrf_id = rt->rtr_req.rtr_vrf_id; @@ -371,6 +377,9 @@ bridge_table_dump(struct vr_rtable * __unsued, struct vr_route_req *rt) goto generate_response; } + if (rt->rtr_req.rtr_mac_size != VR_ETHER_ALEN) + return -EINVAL; + mac = (char *)(((vr_route_req *)(dumper->dump_req))->rtr_mac); if (!mac) { ret = -EINVAL;