[master] 870f16ceb Avoid panic in VRT_CacheReqBody if called from vcl_init{}

Nils Goroll nils.goroll at uplex.de
Fri Jun 24 15:01:03 UTC 2022


commit 870f16cebdf2aac9e9a5e0c8d50c4e632528ae54
Author: Nils Goroll <nils.goroll at uplex.de>
Date:   Fri Jun 24 16:56:10 2022 +0200

    Avoid panic in VRT_CacheReqBody if called from vcl_init{}

diff --git a/bin/varnishd/cache/cache_vrt.c b/bin/varnishd/cache/cache_vrt.c
index ef43a3ade..be3d56768 100644
--- a/bin/varnishd/cache/cache_vrt.c
+++ b/bin/varnishd/cache/cache_vrt.c
@@ -971,11 +971,16 @@ VRT_ban_string(VRT_CTX, VCL_STRING str)
 VCL_BYTES
 VRT_CacheReqBody(VRT_CTX, VCL_BYTES maxsize)
 {
+	const char * const err = "req.body can only be cached in vcl_recv{}";
 
 	CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
 	if (ctx->method != VCL_MET_RECV) {
-		VSLb(ctx->vsl, SLT_VCL_Error,
-		    "req.body can only be cached in vcl_recv{}");
+		if (ctx->vsl != NULL) {
+			VSLb(ctx->vsl, SLT_VCL_Error, err);
+		} else {
+			AN(ctx->msg);
+			VSB_printf(ctx->msg, "%s\n", err);
+		};
 		return (-1);
 	}
 	CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC);


More information about the varnish-commit mailing list