From a221b2807f0eb46e7ff4fe323af10e9e8c6c18a7 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sun, 30 Sep 2018 13:55:40 -0400 Subject: [PATCH] routes/repo/issue: fix redirect with unexpected escape (#5443) --- pkg/context/context.go | 5 +++++ routes/repo/issue.go | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/context/context.go b/pkg/context/context.go index 17a5ec96c..f106cd402 100644 --- a/pkg/context/context.go +++ b/pkg/context/context.go @@ -138,6 +138,11 @@ func (c *Context) JSONSuccess(data interface{}) { c.JSON(http.StatusOK, data) } +// RawRedirect simply calls underlying Redirect method with no escape. +func (c *Context) RawRedirect(location string, status ...int) { + c.Context.Redirect(location, status...) +} + // Redirect responses redirection wtih given location and status. // It escapes special characters in the location string. func (c *Context) Redirect(location string, status ...int) { diff --git a/routes/repo/issue.go b/routes/repo/issue.go index 850520e35..67071a445 100644 --- a/routes/repo/issue.go +++ b/routes/repo/issue.go @@ -901,7 +901,7 @@ func NewComment(c *context.Context, f form.CreateComment) { typeName = "pulls" } if comment != nil { - c.Redirect(fmt.Sprintf("%s/%s/%d#%s", c.Repo.RepoLink, typeName, issue.Index, comment.HashTag())) + c.RawRedirect(fmt.Sprintf("%s/%s/%d#%s", c.Repo.RepoLink, typeName, issue.Index, comment.HashTag())) } else { c.Redirect(fmt.Sprintf("%s/%s/%d", c.Repo.RepoLink, typeName, issue.Index)) }