[master] b498c01c0 Stack req.filters

Nils Goroll nils.goroll at uplex.de
Mon Sep 30 14:19:07 UTC 2024


commit b498c01c0628bcd66bf9f7eace4aad0bdf688b1f
Author: Nils Goroll <nils.goroll at uplex.de>
Date:   Mon Dec 11 08:42:55 2023 +0100

    Stack req.filters

diff --git a/bin/varnishd/cache/cache_req_body.c b/bin/varnishd/cache/cache_req_body.c
index 0ee49c37a..9a4cd54d7 100644
--- a/bin/varnishd/cache/cache_req_body.c
+++ b/bin/varnishd/cache/cache_req_body.c
@@ -91,6 +91,16 @@ vrb_pull(struct req *req, ssize_t maxsize, objiterate_f *func, void *priv)
 	INIT_OBJ(ctx, VRT_CTX_MAGIC);
 	VCL_Req2Ctx(ctx, req);
 
+	if (req->vfp_filter_list != NULL &&
+	    VCL_StackVFP(vfc, req->vcl, req->vfp_filter_list)) {
+		(void)VFP_Error(vfc, "req.body filters failed");
+		req->req_body_status = BS_ERROR;
+		HSH_DerefBoc(req->wrk, req->body_oc);
+		AZ(HSH_DerefObjCore(req->wrk, &req->body_oc, 0));
+		return (-1);
+	}
+
+
 	if (VFP_Open(ctx, vfc) < 0) {
 		req->req_body_status = BS_ERROR;
 		HSH_DerefBoc(req->wrk, req->body_oc);


More information about the varnish-commit mailing list