https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4474
--- Comment #2 from Guy Harris <guy@xxxxxxxxxxxx> 2010-02-09 02:25:56 PST ---
static void dcom_reinit( void) {
/* Note that the memory for each machine, object and interface is
se_alloc'd and thus need not be freed here */
/* I.E: only the actual lists need to be freed.
*/
if (dcom_machines != NULL) {
GList *machines;
for(machines = dcom_machines; machines != NULL; machines =
g_list_next(machines)) {
dcom_machine_t *machine = machines->data;
if (machine->objects != NULL) {
GList *objects;
for(objects = machine->objects; objects != NULL; objects =
g_list_next(objects)) {
dcom_object_t *object = objects->data;
if (object->interfaces != NULL)
g_free(object->interfaces);
}
g_free(machine->objects);
}
}
g_free(dcom_machines);
dcom_machines = NULL;
}
if (dcom_interfaces != NULL) {
g_list_free(dcom_interfaces);
dcom_interfaces = NULL;
}
}
The offending line is
g_free(object->interfaces);
If "the memory for each machine, object and interface is se_alloc'd and thus
need not be freed here", and that means that the actual objects in the
machine->objects list *aren't* freed, methinks that means that either
1) we shouldn't be freeing the interfaces
or
2) we should be setting object->interfaces to null.
--
Configure bugmail: https://bugs.wireshark.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.