[ovs-git] [openvswitch/ovs] 4d0351: ofp-actions: Avoid assertion failure for clone(ct(...

GitHub noreply at github.com
Fri Aug 17 23:40:00 UTC 2018


  Branch: refs/heads/branch-2.9
  Home:   https://github.com/openvswitch/ovs
  Commit: 4d035179c60c221ebfe01ac9da05c33a1f8a0f1f
      https://github.com/openvswitch/ovs/commit/4d035179c60c221ebfe01ac9da05c33a1f8a0f1f
  Author: Ben Pfaff <blp at ovn.org>
  Date:   2018-08-17 (Fri, 17 Aug 2018)

  Changed paths:
    M lib/ofp-actions.c

  Log Message:
  -----------
  ofp-actions: Avoid assertion failure for clone(ct(...bad actions...)).

decode_NXAST_RAW_CT() temporarily pulls data off the beginning of its
ofpacts output ofpbuf and, on its error path, fails to push it back on.
At a higher layer, decode_NXAST_RAW_CLONE() asserts, via
ofpact_finish_CLONE(), that the ofpact_clone that it put is still in the
place where it put it, which causes an assertion failure.

The root cause here is the failure to re-push the clone header.  One could
fix that, but it would be pretty easy for that to go wrong again on some
other obscure error path.  Instead, this commit just makes the problem go
away by always saving and restoring 'ofpact->data' if a decode fails.

Reported-at: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9862
Signed-off-by: Ben Pfaff <blp at ovn.org>
Acked-by: Justin Pettit <jpettit at ovn.org>



      **NOTE:** This service has been marked for deprecation: https://developer.github.com/changes/2018-04-25-github-services-deprecation/

      Functionality will be removed from GitHub.com on January 31st, 2019.


More information about the git mailing list