[master] a35554803 Try to clarify for coverity how vsl_delseg() works
Nils Goroll
nils.goroll at uplex.de
Tue Dec 29 10:48:07 UTC 2020
commit a355548039182446ac94ff82ec9f311ba72005bb
Author: Nils Goroll <nils.goroll at uplex.de>
Date: Tue Dec 29 11:29:57 2020 +0100
Try to clarify for coverity how vsl_delseg() works
Ref CID 1430127, CID 1430118
diff --git a/lib/libvarnishapi/vsm.c b/lib/libvarnishapi/vsm.c
index 6ec9fd536..d9e67ef32 100644
--- a/lib/libvarnishapi/vsm.c
+++ b/lib/libvarnishapi/vsm.c
@@ -304,6 +304,7 @@ static void
vsm_delset(struct vsm_set **p)
{
struct vsm_set *vs;
+ struct vsm_seg *vg;
AN(p);
vs = *p;
@@ -312,10 +313,14 @@ vsm_delset(struct vsm_set **p)
closefd(&vs->fd);
if (vs->dfd >= 0)
closefd(&vs->dfd);
- while (!VTAILQ_EMPTY(&vs->stale))
- vsm_delseg(VTAILQ_FIRST(&vs->stale), 0);
- while (!VTAILQ_EMPTY(&vs->segs))
- vsm_delseg(VTAILQ_FIRST(&vs->segs), 0);
+ while ((vg = VTAILQ_FIRST(&vs->stale)) != NULL) {
+ AN(vg->flags & VSM_FLAG_STALE);
+ vsm_delseg(vg, 0);
+ }
+ while ((vg = VTAILQ_FIRST(&vs->segs)) != NULL) {
+ AZ(vg->flags & VSM_FLAG_STALE);
+ vsm_delseg(vg, 0);
+ }
assert(VTAILQ_EMPTY(&vs->clusters));
VLU_Destroy(&vs->vlu);
FREE_OBJ(vs);
More information about the varnish-commit
mailing list