Hi Aaron,

Happy to write a test case for this. The plan would be to add a
set-flow command to ovs-dpctl.py (OVS_FLOW_CMD_SET is defined but
never used today), then add a shell test that creates a flow with
actions and modifies it without actions to exercise the implicit
drop path.

Should I target net or net-next for the test patch?

Thanks,
Minxi

Aaron Conole <[email protected]> 于2026年6月4日周四 23:36写道:

> Hi Adrian,
>
> Adrian Moreno via dev <[email protected]> writes:
>
> > After the patch in the "Fixes" tag, the allocation of the "reply" skb
> > can happen either before or after locking the ovs_mutex.
> >
> > However, error cleanups still follow the classical reversed order,
> > assuming "reply" is allocated before locking: it is freed after
> unlocking.
> >
> > If "reply" allocation happens after locking the mutex and it fails,
> > "reply" is left with an ERR_PTR, and execution jumps to the correspondent
> > cleanup stage which will try to free an invalid pointer.
> >
> > Fix this by setting the pointer to NULL after having saved its error
> > value.
> >
> > Fixes: 893f139b9a6c ("openvswitch: Minimize ovs_flow_cmd_new|set
> > critical sections.")
> >
> > Signed-off-by: Adrian Moreno <[email protected]>
> > ---
>
> Good catch - I guess this should only happen when modifying an existing
> flow without putting any actions (and that would be only from an
> implicit drop case since the actions list would be empty).  CC'ing
> Minxi, since he's recently had interest in the selftests area and may be
> able to help with writing a test case for the scenario.
>
> Reviewed-by: Aaron Conole <[email protected]>
>
>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to