Fix for bug 479 - Undefined filter reference in MaxScale.cnf causes a crash
This commit is contained in:
@ -318,6 +318,9 @@ filterApply(FILTER_DEF *filter, SESSION *session, DOWNSTREAM *downstream)
|
|||||||
{
|
{
|
||||||
DOWNSTREAM *me;
|
DOWNSTREAM *me;
|
||||||
|
|
||||||
|
if (filter == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
if (filter->obj == NULL)
|
if (filter->obj == NULL)
|
||||||
{
|
{
|
||||||
/* Filter not yet loaded */
|
/* Filter not yet loaded */
|
||||||
|
|||||||
@ -333,12 +333,14 @@ bool session_free(
|
|||||||
{
|
{
|
||||||
for (i = 0; i < session->n_filters; i++)
|
for (i = 0; i < session->n_filters; i++)
|
||||||
{
|
{
|
||||||
|
if (session->filters[i].filter)
|
||||||
session->filters[i].filter->obj->closeSession(
|
session->filters[i].filter->obj->closeSession(
|
||||||
session->filters[i].instance,
|
session->filters[i].instance,
|
||||||
session->filters[i].session);
|
session->filters[i].session);
|
||||||
}
|
}
|
||||||
for (i = 0; i < session->n_filters; i++)
|
for (i = 0; i < session->n_filters; i++)
|
||||||
{
|
{
|
||||||
|
if (session->filters[i].filter)
|
||||||
session->filters[i].filter->obj->freeSession(
|
session->filters[i].filter->obj->freeSession(
|
||||||
session->filters[i].instance,
|
session->filters[i].instance,
|
||||||
session->filters[i].session);
|
session->filters[i].session);
|
||||||
@ -653,6 +655,14 @@ int i;
|
|||||||
session->n_filters = service->n_filters;
|
session->n_filters = service->n_filters;
|
||||||
for (i = service->n_filters - 1; i >= 0; i--)
|
for (i = service->n_filters - 1; i >= 0; i--)
|
||||||
{
|
{
|
||||||
|
if (service->filters[i] == NULL)
|
||||||
|
{
|
||||||
|
LOGIF(LE, (skygw_log_write_flush(
|
||||||
|
LOGFILE_ERROR,
|
||||||
|
"Service '%s' contians an unresolved filter.\n",
|
||||||
|
service->name)));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if ((head = filterApply(service->filters[i], session,
|
if ((head = filterApply(service->filters[i], session,
|
||||||
&session->head)) == NULL)
|
&session->head)) == NULL)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user