[6.0] d78477d21 Sprinkle CHECK_OBJ_NOTNULL on struct vsm_seg
Martin Blix Grydeland
martin at varnish-software.com
Fri Oct 18 13:23:07 UTC 2019
commit d78477d21a3cc36b8733ce8a90e5151cdbddcfed
Author: Martin Blix Grydeland <martin at varnish-software.com>
Date: Sat Aug 31 12:43:39 2019 +0200
Sprinkle CHECK_OBJ_NOTNULL on struct vsm_seg
Several places in the code lacked checking that these were still valid
objects (ie not free'd).
diff --git a/lib/libvarnishapi/vsm.c b/lib/libvarnishapi/vsm.c
index 5c2d6efe1..8f7d469e2 100644
--- a/lib/libvarnishapi/vsm.c
+++ b/lib/libvarnishapi/vsm.c
@@ -525,7 +525,7 @@ vsm_vlu_plus(struct vsm *vd, struct vsm_set *vs, const char *line)
VTAILQ_INSERT_TAIL(&vs->clusters, vg, clist);
} else if (*vg->av[2] != '0') {
vg->cluster = vsm_findcluster(vs, vg->av[1]);
- AN(vg->cluster);
+ CHECK_OBJ_NOTNULL(vg->cluster, VSM_SEG_MAGIC);
}
}
return (0);
@@ -882,6 +882,7 @@ VSM_Map(struct vsm *vd, struct vsm_fantom *vf)
return (0);
}
+ CHECK_OBJ_NOTNULL(vgc, VSM_SEG_MAGIC);
assert(vgc->flags & VSM_FLAG_CLUSTER);
assert(vg->s == NULL);
assert(vg->sz == 0);
@@ -922,6 +923,7 @@ VSM_Unmap(struct vsm *vd, struct vsm_fantom *vf)
vg = vsm_findseg(vd, vf);
if (vg == NULL)
return (vsm_diag(vd, "VSM_Unmap: bad fantom"));
+ CHECK_OBJ_NOTNULL(vg, VSM_SEG_MAGIC);
assert(vg->refs > 0);
vg->refs--;
vf->b = NULL;
@@ -930,6 +932,7 @@ VSM_Unmap(struct vsm *vd, struct vsm_fantom *vf)
return(0);
if (vg->cluster) {
+ CHECK_OBJ_NOTNULL(vg->cluster, VSM_SEG_MAGIC);
assert(vg->s == NULL);
assert(vg->sz == 0);
assert(vg->cluster->refs > 0);
More information about the varnish-commit
mailing list