[ovs-build] Passed: igsilya/ovs#783 (tmp-master - 77155b4)
Travis CI
builds at travis-ci.org
Wed Jun 3 16:34:49 UTC 2020
Build Update for igsilya/ovs
-------------------------------------
Build: #783
Status: Passed
Duration: 59 mins and 41 secs
Commit: 77155b4 (tmp-master)
Author: Ilya Maximets
Message: ovs-rcu: Avoid flushing callbacks during postponing.
ovsrcu_flush_cbset() call during ovsrcu_postpone() could cause
use after free in case the caller sets new pointer only after
postponing free for the old one:
------------------ ------------------ -------------------
Thread 1 Thread 2 RCU Thread
------------------ ------------------ -------------------
pointer = A
ovsrcu_quiesce():
thread->seqno = 30
global_seqno = 31
quiesced
read pointer A
postpone(free(A)):
flush cbset
pop flushed_cbsets
ovsrcu_synchronize:
target_seqno = 31
ovsrcu_quiesce():
thread->seqno = 31
global_seqno = 32
quiesced
read pointer A
use pointer A
ovsrcu_quiesce():
thread->seqno = 32
global_seqno = 33
quiesced
read pointer A
pointer = B
ovsrcu_quiesce():
thread->seqno = 33
global_seqno = 34
quiesced
target_seqno exceeded
by all threads
call cbs to free A
use pointer A
(use after free)
-----------------------------------------------------------
Fix that by using dynamically re-allocated array without flushing
to the global flushed_cbsets until writer enters quiescent state.
Fixes: 0f2ea84841e1 ("ovs-rcu: New library.")
Reported-by: Linhaifeng <haifeng.lin at huawei.com>
Reported-at: https://mail.openvswitch.org/pipermail/ovs-dev/2020-June/371265.html
Signed-off-by: Ilya Maximets <i.maximets at ovn.org>
View the changeset: https://github.com/igsilya/ovs/compare/4784b5c3c055...77155b499da8
View the full build log and details: https://travis-ci.org/github/igsilya/ovs/builds/694308961?utm_medium=notification&utm_source=email
--
You can unsubscribe from build emails from the igsilya/ovs repository going to https://travis-ci.org/account/preferences/unsubscribe?repository=17831080&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/20200603/b0ee8a2b/attachment-0001.html>
More information about the build
mailing list