On Wed, 20 May 2026 13:49:57 -0400 Mike Pattrick <[email protected]> wrote:
> On Tue, May 19, 2026 at 9:20 AM Timothy Redaelli via dev < > [email protected]> wrote: > > > The condition (flow->actions || flow->actions_len) allows > > flow->actions to be NULL when flow->actions_len is nonzero, > > which would pass NULL to nl_msg_put_unspec(). > > > > Simplify the guard to just check flow->actions, since a non-NULL > > actions pointer is the meaningful condition for serialization, and > > nl_msg_put_unspec already handles actions_len == 0 correctly. > > > > Found by OpenScanHub Coverity (FORWARD_NULL). > > Signed-off-by: Timothy Redaelli <[email protected]> > > --- > > lib/dpif-netlink.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/lib/dpif-netlink.c b/lib/dpif-netlink.c > > index f22a87934..7bd9449a8 100644 > > --- a/lib/dpif-netlink.c > > +++ b/lib/dpif-netlink.c > > @@ -4712,7 +4712,7 @@ dpif_netlink_flow_to_ofpbuf(const struct > > dpif_netlink_flow *flow, > > put_exclude_packet_type(buf, OVS_FLOW_ATTR_MASK, flow->mask, > > flow->mask_len); > > } > > - if (flow->actions || flow->actions_len) { > > > > Should this be "flow->actions && flow->actions_len" instead? Maybe yes, but this changes the current behavior and I preferred to only fix warns without changing pre-existing stuff. actions_len == 0 with a non-NULL pointer is valid; it means "drop" (empty actions list). See the comment right above the struct member: "If 'actions' is nonnull then OVS_FLOW_ATTR_ACTIONS will be included in the Netlink version of the command, even if actions_len is zero." dpif_netlink_init_flow_put() relies on this: it sets a static dummy_action with actions_len 0 so that OVS_FLOW_ATTR_ACTIONS is always serialized. Using && would skip that and break SET operations that need to clear actions. nl_msg_put_unspec() already handles size 0 fine (via nullable_memcpy). > > > + if (flow->actions) { > > nl_msg_put_unspec(buf, OVS_FLOW_ATTR_ACTIONS, > > flow->actions, flow->actions_len); > > } > > -- > > 2.54.0 > > > > _______________________________________________ > > dev mailing list > > [email protected] > > https://mail.openvswitch.org/mailman/listinfo/ovs-dev > > > > _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
