From 8e2a8efd84bf39c4dd38f7f4acdc2d7f499f610a Mon Sep 17 00:00:00 2001
From: zeripath <art27@cantab.net>
Date: Wed, 14 Apr 2021 13:57:18 +0100
Subject: [PATCH] Prevent superfluous response.WriteHeader (#15456)

This PR simply checks the status before writing the header.

Signed-off-by: Andrew Thornton <art27@cantab.net>
---
 modules/context/response.go | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/modules/context/response.go b/modules/context/response.go
index bdbbb97af..4ffbd230a 100644
--- a/modules/context/response.go
+++ b/modules/context/response.go
@@ -4,7 +4,9 @@
 
 package context
 
-import "net/http"
+import (
+	"net/http"
+)
 
 // ResponseWriter represents a response writer for HTTP
 type ResponseWriter interface {
@@ -60,8 +62,10 @@ func (r *Response) WriteHeader(statusCode int) {
 		}
 		r.beforeExecuted = true
 	}
-	r.status = statusCode
-	r.ResponseWriter.WriteHeader(statusCode)
+	if r.status == 0 {
+		r.status = statusCode
+		r.ResponseWriter.WriteHeader(statusCode)
+	}
 }
 
 // Flush flush cached data