When decoding a group mod, the current code validates the group type and command after the whole group mod has been decoded. The OF1.5 decoder, however, tries to use the type and command earlier, when it might still be invalid. This caused an assertion failure (via OVS_NOT_REACHED). This commit fixes the problem.
ovs-vswitchd does not enable support for OpenFlow 1.5 by default. Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9249 Signed-off-by: Ben Pfaff <[email protected]> --- lib/ofp-group.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ofp-group.c b/lib/ofp-group.c index 697208f0e9f6..f6e5242f5244 100644 --- a/lib/ofp-group.c +++ b/lib/ofp-group.c @@ -1547,7 +1547,7 @@ parse_group_prop_ntr_selection_method(struct ofpbuf *payload, "only allowed for select groups"); return OFPERR_OFPBPC_BAD_VALUE; default: - OVS_NOT_REACHED(); + return OFPERR_OFPGMFC_BAD_TYPE; } switch (group_cmd) { @@ -1562,7 +1562,7 @@ parse_group_prop_ntr_selection_method(struct ofpbuf *payload, "only allowed for add and delete group modifications"); return OFPERR_OFPBPC_BAD_VALUE; default: - OVS_NOT_REACHED(); + return OFPERR_OFPGMFC_BAD_COMMAND; } if (payload->size < sizeof *prop) { -- 2.16.1 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
