Steven Dake wrote: > On 06/01/2011 09:14 AM, Jan Friesse wrote: >> Signed-off-by: Jan Friesse <[email protected]> >> --- >> services/votequorum.c | 5 +++++ >> 1 files changed, 5 insertions(+), 0 deletions(-) >> >> diff --git a/services/votequorum.c b/services/votequorum.c >> index 5b89359..291da4b 100644 >> --- a/services/votequorum.c >> +++ b/services/votequorum.c >> @@ -1052,6 +1052,11 @@ static void >> message_handler_req_exec_votequorum_nodeinfo ( >> if (new_node || req_exec_quorum_nodeinfo->first_trans || >> old_votes != node->votes || old_expected != node->expected_votes || >> old_state != node->state) >> recalculate_quorum(0, 0); >> + >> + if (!nodeid) { >> + free(node); >> + } >> + >> LEAVE(); >> } >> > > I believe we want to persist the nodeid data structure, and in this case > the leak is expected behavior. A better choice would be a comment > indicating that nodeid is leaked permanently as part of the system > operation rather then having this free operation.
Take a look to source code. allocate_node called on 1002 will test nodeid != 0 on 812. If it is not != 0 it will add to list, but if nodeid IS 0, it is not added to list and memory is simply returned. So actually if nodeid !=0 we want to free it and not keep it, because it is really leak. _______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
