[ovs-build] Passed: williamtu/ovs-travis#424 (yifeng-tun - 52284c3)

Travis CI builds at travis-ci.org
Fri Mar 27 16:46:08 UTC 2020

Build Update for williamtu/ovs-travis

Build: #424
Status: Passed

Duration: 54 mins and 38 secs
Commit: 52284c3 (yifeng-tun)
Author: Yifeng Sun
Message: tun_metadata: Fix coredump caused by use-after-free bug

Tun_metadata can be referened by flow and frozen_state at the same
time. When ovs-vswitchd handles TLV table mod message, the involved
tun_metadata gets freed. The call trace to free tun_metadata is
shown as below:

- handle_openflow
  - handle_single_part_openflow
    - handle_tlv_table_mod
      - tun_metadata_table_mod
        - tun_metadata_postpone_free

Unfortunately, this tun_metadata can be still used by some frozen_state,
and later on when frozen_state tries to access its tun_metadata table,
ovs-vswitchd crashes. The call trace to access tun_metadata from
frozen_state is shown as below:

- recv_upcalls
  - process_upcall
    - frozen_metadata_to_flow

This patch fixes it by introducing a reference count to tun_metadata.
Whenever a pointer of tun_metadata is passed between flow and
frozen_state, we increase its reference count. Reference count
is decreased at deallocation.

In present code, pointer of tun_metadata can be passed between flows.
It is safe because of RCU mechanism.

VMware-BZ: #2526222
Signed-off-by: Yifeng Sun <pkusunyifeng at gmail.com>
Signed-off-by: William Tu <u9012063 at gmail.com>

View the changeset: https://github.com/williamtu/ovs-travis/commit/52284c34df49

View the full build log and details: https://travis-ci.org/github/williamtu/ovs-travis/builds/667765333?utm_medium=notification&utm_source=email


You can unsubscribe from build emails from the williamtu/ovs-travis repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=6871381&utm_medium=notification&utm_source=email.
Or unsubscribe from *all* email updating your settings at https://travis-ci.org/account/preferences/unsubscribe?utm_medium=notification&utm_source=email.
Or configure specific recipients for build notifications in your .travis.yml file. See https://docs.travis-ci.com/user/notifications.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.openvswitch.org/pipermail/ovs-build/attachments/20200327/9096f3cc/attachment.html>

More information about the build mailing list