Commit c0a4ee41 authored by Nils Goroll's avatar Nils Goroll

in vmod destructors, tolerate failed object initializations

works around #2297
parent 43b98104
......@@ -124,6 +124,10 @@ vmod_fallback__fini(struct vmod_directors_fallback **fbp)
{
struct vmod_directors_fallback *fb;
// XXX 2297
if (*fbp == NULL)
return;
TAKE_OBJ_NOTNULL(fb, fbp, VMOD_DIRECTORS_FALLBACK_MAGIC);
VRT_DelDirector(&fb->vd->dir);
}
......
......@@ -83,6 +83,10 @@ vmod_hash__fini(struct vmod_directors_hash **rrp)
{
struct vmod_directors_hash *rr;
// XXX 2297
if (*rrp == NULL)
return;
TAKE_OBJ_NOTNULL(rr, rrp, VMOD_DIRECTORS_HASH_MAGIC);
VRT_DelDirector(&rr->vd->dir);
}
......
......@@ -111,6 +111,10 @@ vmod_random__fini(struct vmod_directors_random **rrp)
{
struct vmod_directors_random *rr;
// XXX 2297
if (*rrp == NULL)
return;
TAKE_OBJ_NOTNULL(rr, rrp, VMOD_DIRECTORS_RANDOM_MAGIC);
VRT_DelDirector(&rr->vd->dir);
}
......
......@@ -119,6 +119,10 @@ vmod_round_robin__fini(struct vmod_directors_round_robin **rrp)
{
struct vmod_directors_round_robin *rr;
// XXX 2297
if (*rrp == NULL)
return;
TAKE_OBJ_NOTNULL(rr, rrp, VMOD_DIRECTORS_ROUND_ROBIN_MAGIC);
VRT_DelDirector(&rr->vd->dir);
}
......
......@@ -270,6 +270,10 @@ vmod_shard__fini(struct vmod_directors_shard **vshardp)
{
struct vmod_directors_shard *vshard;
// XXX 2297
if (*vshardp == NULL)
return;
TAKE_OBJ_NOTNULL(vshard, vshardp, VMOD_SHARD_SHARD_MAGIC);
VRT_DelDirector(&vshard->dir);
FREE_OBJ(vshard);
......@@ -785,8 +789,10 @@ vmod_shard_param__fini(struct vmod_directors_shard_param **pp)
{
struct vmod_directors_shard_param *p;
// XXX 2297
if (*pp == NULL)
return;
TAKE_OBJ_NOTNULL(p, pp, VMOD_SHARD_SHARD_PARAM_MAGIC);
FREE_OBJ(p);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment