[ovs-dev] [PATCH] raft: Fix leak of the incomplete command.

William Tu u9012063 at gmail.com
Tue May 5 01:08:33 UTC 2020


On Mon, May 04, 2020 at 04:55:24PM -0700, Han Zhou wrote:
> On Mon, May 4, 2020 at 4:10 PM William Tu <u9012063 at gmail.com> wrote:
> >
> > On Mon, May 04, 2020 at 09:55:41PM +0200, Ilya Maximets wrote:
> > > Function raft_command_initiate() returns correctly referenced command
> > > instance.  'n_ref' equals 1 for complete commands and 2 for incomplete
> > > commands because one more reference is in raft->commands list.
> > > raft_handle_execute_command_request__() leaks the reference by not
> > > returning pointer anywhere and not unreferencing incomplete commands.
> > >
> > >  792 bytes in 11 blocks are definitely lost in loss record 258 of 262
> > >     at 0x483BB1A: calloc (vg_replace_malloc.c:762)
> > >     by 0x44BA32: xcalloc (util.c:121)
> > >     by 0x422E5F: raft_command_create_incomplete (raft.c:2038)
> > >     by 0x422E5F: raft_command_initiate (raft.c:2061)
> > >     by 0x428651: raft_handle_execute_command_request__ (raft.c:4161)
> > >     by 0x428651: raft_handle_execute_command_request (raft.c:4177)
> > >     by 0x428651: raft_handle_rpc (raft.c:4230)
> > >     by 0x428651: raft_conn_run (raft.c:1445)
> > >     by 0x428DEA: raft_run (raft.c:1803)
> > >     by 0x407392: main_loop (ovsdb-server.c:226)
> > >     by 0x407392: main (ovsdb-server.c:469)
> > >
> > > Fixes: 1b1d2e6daa56 ("ovsdb: Introduce experimental support for
> clustered databases.")
> > > Signed-off-by: Ilya Maximets <i.maximets at ovn.org>
> >
> > Looks good to me, Coverity also detects this leak.
> > Acked-by: William Tu <u9012063 at gmail.com>
> >
> 
> Thanks for the fix.
> Acked-by: Han Zhou <hzhou at ovn.org>

Thanks.
Applied to master and 2.13.
William


More information about the dev mailing list