[master] 8a4e28f in vtx_append(), assert that we do not try to buffer an invalid chunk
Nils Goroll
nils.goroll at uplex.de
Mon Feb 26 19:28:07 UTC 2018
commit 8a4e28f17c2ee39237a2c56fa0694f2f0b73e3f8
Author: Nils Goroll <nils.goroll at uplex.de>
Date: Mon Feb 26 17:18:53 2018 +0100
in vtx_append(), assert that we do not try to buffer an invalid chunk
diff --git a/lib/libvarnishapi/vsl_dispatch.c b/lib/libvarnishapi/vsl_dispatch.c
index ccfe026..9ee85fb 100644
--- a/lib/libvarnishapi/vsl_dispatch.c
+++ b/lib/libvarnishapi/vsl_dispatch.c
@@ -429,14 +429,15 @@ vtx_append(struct VSLQ *vslq, struct vtx *vtx, const struct VSLC_ptr *start,
size_t len)
{
struct chunk *chunk;
+ enum vsl_check i;
AN(vtx);
if (len == 0)
return;
AN(start);
- if (VSL_Check(vslq->c, start) == vsl_check_valid &&
- !VTAILQ_EMPTY(&vtx->shmchunks_free)) {
+ i = VSL_Check(vslq->c, start);
+ if (i == vsl_check_valid && !VTAILQ_EMPTY(&vtx->shmchunks_free)) {
/* Shmref it */
chunk = VTAILQ_FIRST(&vtx->shmchunks_free);
CHECK_OBJ_NOTNULL(chunk, CHUNK_MAGIC);
@@ -450,6 +451,7 @@ vtx_append(struct VSLQ *vslq, struct vtx *vtx, const struct VSLC_ptr *start,
/* Append to shmref list */
VTAILQ_INSERT_TAIL(&vslq->shmrefs, chunk, shm.shmref);
} else {
+ assert(i != vsl_check_e_inval);
/* Buffer it */
chunk = VTAILQ_LAST(&vtx->chunks, chunkhead);
CHECK_OBJ_ORNULL(chunk, CHUNK_MAGIC);
More information about the varnish-commit
mailing list