Compile with -fsanitize=address unveils the following memory leak:

==1175==ERROR: LeakSanitizer: detected memory leaks

Direct leak of 216 byte(s) in 3 object(s) allocated from:
    #0 0x7f0881809b17 in calloc (/lib64/libasan.so.6+0xaeb17)
    #1 0x55b3f110bc78 in send_protocol 
/builddir/devel/dlm/dlm_controld/daemon_cpg.c:1872

SUMMARY: AddressSanitizer: 216 byte(s) leaked in 3 allocation(s).

This patch free's the allocated buffer in send_protocol which should be
copied in a different buffer by _send_message() already.
---
 dlm_controld/daemon_cpg.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/dlm_controld/daemon_cpg.c b/dlm_controld/daemon_cpg.c
index f215edfd..e6a03a28 100644
--- a/dlm_controld/daemon_cpg.c
+++ b/dlm_controld/daemon_cpg.c
@@ -1886,6 +1886,7 @@ static void send_protocol(struct protocol *proto)
        protocol_out(pr);
 
        _send_message(cpg_handle_daemon, buf, len, DLM_MSG_PROTOCOL);
+       free(buf);
 }
 
 int set_protocol(void)
-- 
2.31.1

Reply via email to