Comment 41 for bug 2026757

Revision history for this message
Julia Kreger (juliaashleykreger) wrote :

So, I tossed the change because I wanted to try and produce the failure. I tried to re-create it, but didn't have the best of luck which makes me think I masked the issue a bit too well. Playing with valgrind has me questioning reality:

==1119241== ERROR SUMMARY: 9 errors from 6 contexts (suppressed: 0 from 0)
==1119241==
==1119241== 1 errors in context 1 of 6:
==1119241== Invalid read of size 8
==1119241== at 0x11EA27: dhcp_netid_free (option.c:1332)
==1119241== by 0x11EA27: dhcp_netid_list_free (option.c:1363)
==1119241== by 0x11EA27: dhcp_config_free (option.c:1381)
==1119241== by 0x128F60: clear_dynamic_conf (option.c:5777)
==1119241== by 0x128F60: reread_dhcp (option.c:5818)
==1119241== by 0x1327FE: clear_cache_and_reload (dnsmasq.c:1738)
==1119241== by 0x112AD6: async_event (dnsmasq.c:1482)
==1119241== by 0x112AD6: main (dnsmasq.c:1224)
==1119241== Address 0x1ffefffbc0 is on thread 1's stack
==1119241== 624 bytes below stack pointer
==1119241==
==1119241==
==1119241== 2 errors in context 2 of 6:
==1119241== Invalid read of size 8
==1119241== at 0x11EA23: dhcp_netid_free (option.c:1331)
==1119241== by 0x11EA23: dhcp_netid_list_free (option.c:1363)
==1119241== by 0x11EA23: dhcp_config_free (option.c:1381)
==1119241== by 0x128F60: clear_dynamic_conf (option.c:5777)
==1119241== by 0x128F60: reread_dhcp (option.c:5818)
==1119241== by 0x1327FE: clear_cache_and_reload (dnsmasq.c:1738)
==1119241== by 0x112AD6: async_event (dnsmasq.c:1482)
==1119241== by 0x112AD6: main (dnsmasq.c:1224)
==1119241== Address 0x1ffefffbc8 is on thread 1's stack
==1119241== 616 bytes below stack pointer
==1119241==
==1119241==
==1119241== 2 errors in context 3 of 6:
==1119241== Invalid free() / delete / delete[] / realloc()
==1119241== at 0x484B27F: free (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)
==1119241== by 0x11EA37: dhcp_netid_free (option.c:1333)
==1119241== by 0x11EA37: dhcp_netid_list_free (option.c:1363)
==1119241== by 0x11EA37: dhcp_config_free (option.c:1381)
==1119241== by 0x128F60: clear_dynamic_conf (option.c:5777)
==1119241== by 0x128F60: reread_dhcp (option.c:5818)
==1119241== by 0x1327FE: clear_cache_and_reload (dnsmasq.c:1738)
==1119241== by 0x112AD6: async_event (dnsmasq.c:1482)
==1119241== by 0x112AD6: main (dnsmasq.c:1224)
==1119241== Address 0x1ffefffbc0 is on thread 1's stack
==1119241== 544 bytes below stack pointer

Which has me sort of wondering if the overall pattern of the cleanup might be something we should be looking at.