The option list was not freed after individual options were
removed.

This is the valgrind report of the issue

==16972== 24 bytes in 1 blocks are definitely lost in loss record 81 of 262
==16972==    at 0x4C2745D: malloc (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==16972==    by 0x4E7FE6E: g_malloc (in /usr/lib64/libglib-2.0.so.0.3800.2)
==16972==    by 0x4E95FAD: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.3800.2)
==16972==    by 0x4E76A63: g_list_append (in /usr/lib64/libglib-2.0.so.0.3800.2)
==16972==    by 0x41297A: listener_event (client.c:1867)
==16972==    by 0x4E7A2A5: g_main_context_dispatch (in 
/usr/lib64/libglib-2.0.so.0.3800.2)
==16972==    by 0x4E7A627: ??? (in /usr/lib64/libglib-2.0.so.0.3800.2)
==16972==    by 0x4E7AA39: g_main_loop_run (in 
/usr/lib64/libglib-2.0.so.0.3800.2)
==16972==    by 0x40FDF6: main (main.c:689)
==16972==
==16972== 192 (144 direct, 48 indirect) bytes in 6 blocks are definitely lost 
in loss record 227 of 262
==16972==    at 0x4C2745D: malloc (in 
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==16972==    by 0x4E7FE6E: g_malloc (in /usr/lib64/libglib-2.0.so.0.3800.2)
==16972==    by 0x4E95FAD: g_slice_alloc (in /usr/lib64/libglib-2.0.so.0.3800.2)
==16972==    by 0x4E76A63: g_list_append (in /usr/lib64/libglib-2.0.so.0.3800.2)
==16972==    by 0x4126F5: listener_event (client.c:1877)
==16972==    by 0x4E7A2A5: g_main_context_dispatch (in 
/usr/lib64/libglib-2.0.so.0.3800.2)
==16972==    by 0x4E7A627: ??? (in /usr/lib64/libglib-2.0.so.0.3800.2)
==16972==    by 0x4E7AA39: g_main_loop_run (in 
/usr/lib64/libglib-2.0.so.0.3800.2)
==16972==    by 0x40FDF6: main (main.c:689)
---
 gdhcp/client.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/gdhcp/client.c b/gdhcp/client.c
index db21e01..16fe080 100644
--- a/gdhcp/client.c
+++ b/gdhcp/client.c
@@ -1130,6 +1130,7 @@ static void remove_option_value(gpointer data)
        GList *option_value = data;
 
        g_list_foreach(option_value, remove_value, NULL);
+       g_list_free(option_value);
 }
 
 GDHCPClient *g_dhcp_client_new(GDHCPType type,
-- 
1.8.3.1

_______________________________________________
connman mailing list
connman@connman.net
https://lists.connman.net/mailman/listinfo/connman

Reply via email to