diff mbox series

[ovs-dev,ovs-dev,v3,2/3] ofproto-dpif: fix meter use-after-free

Message ID 20220514084010.119558-2-hepeng.0320@bytedance.com
State Superseded
Headers show
Series [ovs-dev,ovs-dev,v3,1/3] ovs-rcu: add rcu_barrier | expand

Checks

Context Check Description
ovsrobot/apply-robot warning apply and check: warning
ovsrobot/github-robot-_Build_and_Test success github build: passed
ovsrobot/intel-ovs-compilation success test: success

Commit Message

Peng He May 14, 2022, 8:40 a.m. UTC
add a rcu_barrier before close_dpif_backer to ensure that
all meters has been freed before id_pool_destory meter's
id-pool.

Signed-off-by: Peng He <hepeng.0320@bytedance.com>
Tested-by: David Marchand <david.marchand@redhat.com>
---
 ofproto/ofproto-dpif.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

0-day Robot May 14, 2022, 9 a.m. UTC | #1
Bleep bloop.  Greetings Peng He, I am a robot and I have tried out your patch.
Thanks for your contribution.

I encountered some error that I wasn't expecting.  See the details below.


checkpatch:
ERROR: Author Peng He <xnhp0320@gmail.com> needs to sign off.
WARNING: Unexpected sign-offs from developers who are not authors or co-authors or committers: Peng He <hepeng.0320@bytedance.com>
Lines checked: 32, Warnings: 1, Errors: 1


Please check this out.  If you feel there has been an error, please email aconole@redhat.com

Thanks,
0-day Robot
Eelco Chaudron May 16, 2022, 8:32 a.m. UTC | #2
On 14 May 2022, at 10:40, Peng He wrote:

> add a rcu_barrier before close_dpif_backer to ensure that
> all meters has been freed before id_pool_destory meter's
> id-pool.
>
> Signed-off-by: Peng He <hepeng.0320@bytedance.com>
> Tested-by: David Marchand <david.marchand@redhat.com>

This patch looks good to me…

Acked-by: Eelco Chaudron <echaudro@redhat.com>

> ---
>  ofproto/ofproto-dpif.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
> index a4c44052d..ea4539f02 100644
> --- a/ofproto/ofproto-dpif.c
> +++ b/ofproto/ofproto-dpif.c
> @@ -1848,6 +1848,8 @@ destruct(struct ofproto *ofproto_, bool del)
>
>      seq_destroy(ofproto->ams_seq);
>
> +    /* Wait for all the meter destroy work to finish */
> +    ovsrcu_barrier();
>      close_dpif_backer(ofproto->backer, del);
>  }
>
> -- 
> 2.25.1
diff mbox series

Patch

diff --git a/ofproto/ofproto-dpif.c b/ofproto/ofproto-dpif.c
index a4c44052d..ea4539f02 100644
--- a/ofproto/ofproto-dpif.c
+++ b/ofproto/ofproto-dpif.c
@@ -1848,6 +1848,8 @@  destruct(struct ofproto *ofproto_, bool del)
 
     seq_destroy(ofproto->ams_seq);
 
+    /* Wait for all the meter destroy work to finish */
+    ovsrcu_barrier();
     close_dpif_backer(ofproto->backer, del);
 }