On Wed, Feb 16, 2022, at 14:24, wangyunjian wrote: >> -----Original Message----- >> From: Gaëtan Rivet [mailto:[email protected]] >> Sent: Wednesday, February 16, 2022 7:34 PM >> To: wangyunjian <[email protected]>; <[email protected]> >> <[email protected]>; Ilya Maximets <[email protected]> >> Cc: dingxiaoxiong <[email protected]> >> Subject: Re: [ovs-dev] [PATCH] ofproto: fix use-after-free for "ofproto". >> >> On Fri, Dec 3, 2021, at 12:25, Yunjian Wang via dev wrote: >> > When handler threads lookup a "ofproto" and use it, main thread maybe >> > remove and free the "ofproto" at the same time. The "ofproto" has not >> > been protected well, which can lead to an OVS crash. >> > >> > This patch fixes this by making the "ofproto" lookup RCU-safe by using >> > cmap instead of hmap and moving remove "ofproto" call before >> > xlate_txn_commit(). >> > >> >> I don't understand the point of moving the cmap_remove() call before >> xlate_txn_commit(). > > To use of the rcu_synchronize in the xlate_txn_commit to avoid access to the > ofproto from other thread through uuid map. >
Yes the reason is clear. But my question is why is it needed? It seems that the ofproto lifecycle was written with the assumption that it would still be used while being destroyed. Can you explain why it needs to be changed? -- Gaetan Rivet _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
