From 221f2f79f07fb504a4a1943db0eaef03ecdbc4f2 Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Thu, 24 Nov 2016 02:49:08 +0200 Subject: [PATCH] Only call destroyInstance for valid instances If the router of filter failed to create an instance, destroyInstance should not be called. --- server/core/service.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/server/core/service.c b/server/core/service.c index 9380d7c44..cbc14e781 100644 --- a/server/core/service.c +++ b/server/core/service.c @@ -1889,7 +1889,7 @@ void service_shutdown() { svc->svc_do_shutdown = true; /* Call destroyInstance hook for routers */ - if (svc->router->destroyInstance) + if (svc->router->destroyInstance && svc->router_instance) { svc->router->destroyInstance(svc->router_instance); } @@ -1898,7 +1898,7 @@ void service_shutdown() FILTER_DEF **filters = svc->filters; for (int i=0; i < svc->n_filters; i++) { - if (filters[i]->obj->destroyInstance) + if (filters[i]->obj->destroyInstance && filters[i]->filter) { /* Call destroyInstance hook for filters */ filters[i]->obj->destroyInstance(filters[i]->filter);