Fix to Bug #657, http://bugs.skysql.com/show_bug.cgi?id=657
filter.c:filter_free:if filter parameter is NULL, return. tee.c:freeSession: if my_session->dummy_filterdef is NULL, don't try to release the memory
This commit is contained in:
parent
f4f537a3e2
commit
2eee4ae4fd
@ -91,28 +91,31 @@ filter_free(FILTER_DEF *filter)
|
||||
{
|
||||
FILTER_DEF *ptr;
|
||||
|
||||
/* First of all remove from the linked list */
|
||||
spinlock_acquire(&filter_spin);
|
||||
if (allFilters == filter)
|
||||
if (filter)
|
||||
{
|
||||
allFilters = filter->next;
|
||||
}
|
||||
else
|
||||
{
|
||||
ptr = allFilters;
|
||||
while (ptr && ptr->next != filter)
|
||||
/* First of all remove from the linked list */
|
||||
spinlock_acquire(&filter_spin);
|
||||
if (allFilters == filter)
|
||||
{
|
||||
ptr = ptr->next;
|
||||
allFilters = filter->next;
|
||||
}
|
||||
if (ptr)
|
||||
ptr->next = filter->next;
|
||||
}
|
||||
spinlock_release(&filter_spin);
|
||||
else
|
||||
{
|
||||
ptr = allFilters;
|
||||
while (ptr && ptr->next != filter)
|
||||
{
|
||||
ptr = ptr->next;
|
||||
}
|
||||
if (ptr)
|
||||
ptr->next = filter->next;
|
||||
}
|
||||
spinlock_release(&filter_spin);
|
||||
|
||||
/* Clean up session and free the memory */
|
||||
free(filter->name);
|
||||
free(filter->module);
|
||||
free(filter);
|
||||
/* Clean up session and free the memory */
|
||||
free(filter->name);
|
||||
free(filter->module);
|
||||
free(filter);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -527,8 +527,10 @@ SESSION* ses = my_session->branch_session;
|
||||
my_session->branch_session = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
filter_free(my_session->dummy_filterdef);
|
||||
if (my_session->dummy_filterdef)
|
||||
{
|
||||
filter_free(my_session->dummy_filterdef);
|
||||
}
|
||||
free(session);
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user