From ca79ed5eefaa65fc82e1a8c1ec4308eaaadaebd1 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Mon, 17 Feb 2025 16:37:47 +0100 Subject: [PATCH] BUG/MINOR: fcgi: Don't set the status to 302 if it is already set When a "Location" header was found in a FCGI response, the status code was forced to 302. But it should only be performed if no status code was set first. So now, we take care to not override an already defined status code when the "Location" header is found. This patch should fix the issue #2865. It must backported to all stable versions. --- src/h1_htx.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/h1_htx.c b/src/h1_htx.c index 611519c45..e731e8826 100644 --- a/src/h1_htx.c +++ b/src/h1_htx.c @@ -274,7 +274,7 @@ static int h1_postparse_res_hdrs(struct h1m *h1m, union h1_sl *h1sl, struct htx if (isteqi(hdrs[hdr].n, ist("status"))) { code = http_parse_status_val(hdrs[hdr].v, &status, &reason); } - else if (isteqi(hdrs[hdr].n, ist("location"))) { + else if (isteqi(hdrs[hdr].n, ist("location")) && !code) { code = 302; status = ist("302"); reason = ist("Found");