mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	In Render tolerate not being passed a context (#16842)
* In Render tolerate not being passed a context It is possible for RenderString to be passed to an external renderer if markdown is set to be rendered by an external renderer. No context is currently sent to these meaning that this will error out. Fix #16835 Signed-off-by: Andrew Thornton <art27@cantab.net> * Add Context to Repo calls for RenderString All calls from routers can easily add the context - so add it. Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		
							
								
								
									
										8
									
								
								modules/markup/external/external.go
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										8
									
								
								modules/markup/external/external.go
									
									
									
									
										vendored
									
									
								
							| @@ -14,6 +14,7 @@ import ( | |||||||
| 	"runtime" | 	"runtime" | ||||||
| 	"strings" | 	"strings" | ||||||
|  |  | ||||||
|  | 	"code.gitea.io/gitea/modules/graceful" | ||||||
| 	"code.gitea.io/gitea/modules/log" | 	"code.gitea.io/gitea/modules/log" | ||||||
| 	"code.gitea.io/gitea/modules/markup" | 	"code.gitea.io/gitea/modules/markup" | ||||||
| 	"code.gitea.io/gitea/modules/process" | 	"code.gitea.io/gitea/modules/process" | ||||||
| @@ -99,7 +100,12 @@ func (p *Renderer) Render(ctx *markup.RenderContext, input io.Reader, output io. | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if ctx == nil || ctx.Ctx == nil { | 	if ctx == nil || ctx.Ctx == nil { | ||||||
| 		return fmt.Errorf("RenderContext did not provide context") | 		if ctx == nil { | ||||||
|  | 			log.Warn("RenderContext not provided defaulting to empty ctx") | ||||||
|  | 			ctx = &markup.RenderContext{} | ||||||
|  | 		} | ||||||
|  | 		log.Warn("RenderContext did not provide context, defaulting to Shutdown context") | ||||||
|  | 		ctx.Ctx = graceful.GetManager().ShutdownContext() | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	processCtx, cancel := context.WithCancel(ctx.Ctx) | 	processCtx, cancel := context.WithCancel(ctx.Ctx) | ||||||
|   | |||||||
| @@ -1138,6 +1138,7 @@ func ViewIssue(ctx *context.Context) { | |||||||
| 		URLPrefix: ctx.Repo.RepoLink, | 		URLPrefix: ctx.Repo.RepoLink, | ||||||
| 		Metas:     ctx.Repo.Repository.ComposeMetas(), | 		Metas:     ctx.Repo.Repository.ComposeMetas(), | ||||||
| 		GitRepo:   ctx.Repo.GitRepo, | 		GitRepo:   ctx.Repo.GitRepo, | ||||||
|  | 		Ctx:       ctx, | ||||||
| 	}, issue.Content) | 	}, issue.Content) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		ctx.ServerError("RenderString", err) | 		ctx.ServerError("RenderString", err) | ||||||
| @@ -1303,6 +1304,7 @@ func ViewIssue(ctx *context.Context) { | |||||||
| 				URLPrefix: ctx.Repo.RepoLink, | 				URLPrefix: ctx.Repo.RepoLink, | ||||||
| 				Metas:     ctx.Repo.Repository.ComposeMetas(), | 				Metas:     ctx.Repo.Repository.ComposeMetas(), | ||||||
| 				GitRepo:   ctx.Repo.GitRepo, | 				GitRepo:   ctx.Repo.GitRepo, | ||||||
|  | 				Ctx:       ctx, | ||||||
| 			}, comment.Content) | 			}, comment.Content) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				ctx.ServerError("RenderString", err) | 				ctx.ServerError("RenderString", err) | ||||||
| @@ -1379,6 +1381,7 @@ func ViewIssue(ctx *context.Context) { | |||||||
| 				URLPrefix: ctx.Repo.RepoLink, | 				URLPrefix: ctx.Repo.RepoLink, | ||||||
| 				Metas:     ctx.Repo.Repository.ComposeMetas(), | 				Metas:     ctx.Repo.Repository.ComposeMetas(), | ||||||
| 				GitRepo:   ctx.Repo.GitRepo, | 				GitRepo:   ctx.Repo.GitRepo, | ||||||
|  | 				Ctx:       ctx, | ||||||
| 			}, comment.Content) | 			}, comment.Content) | ||||||
| 			if err != nil { | 			if err != nil { | ||||||
| 				ctx.ServerError("RenderString", err) | 				ctx.ServerError("RenderString", err) | ||||||
| @@ -1739,6 +1742,7 @@ func UpdateIssueContent(ctx *context.Context) { | |||||||
| 		URLPrefix: ctx.FormString("context"), | 		URLPrefix: ctx.FormString("context"), | ||||||
| 		Metas:     ctx.Repo.Repository.ComposeMetas(), | 		Metas:     ctx.Repo.Repository.ComposeMetas(), | ||||||
| 		GitRepo:   ctx.Repo.GitRepo, | 		GitRepo:   ctx.Repo.GitRepo, | ||||||
|  | 		Ctx:       ctx, | ||||||
| 	}, issue.Content) | 	}, issue.Content) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		ctx.ServerError("RenderString", err) | 		ctx.ServerError("RenderString", err) | ||||||
| @@ -2170,6 +2174,7 @@ func UpdateCommentContent(ctx *context.Context) { | |||||||
| 		URLPrefix: ctx.FormString("context"), | 		URLPrefix: ctx.FormString("context"), | ||||||
| 		Metas:     ctx.Repo.Repository.ComposeMetas(), | 		Metas:     ctx.Repo.Repository.ComposeMetas(), | ||||||
| 		GitRepo:   ctx.Repo.GitRepo, | 		GitRepo:   ctx.Repo.GitRepo, | ||||||
|  | 		Ctx:       ctx, | ||||||
| 	}, comment.Content) | 	}, comment.Content) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		ctx.ServerError("RenderString", err) | 		ctx.ServerError("RenderString", err) | ||||||
|   | |||||||
| @@ -83,6 +83,7 @@ func Milestones(ctx *context.Context) { | |||||||
| 			URLPrefix: ctx.Repo.RepoLink, | 			URLPrefix: ctx.Repo.RepoLink, | ||||||
| 			Metas:     ctx.Repo.Repository.ComposeMetas(), | 			Metas:     ctx.Repo.Repository.ComposeMetas(), | ||||||
| 			GitRepo:   ctx.Repo.GitRepo, | 			GitRepo:   ctx.Repo.GitRepo, | ||||||
|  | 			Ctx:       ctx, | ||||||
| 		}, m.Content) | 		}, m.Content) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			ctx.ServerError("RenderString", err) | 			ctx.ServerError("RenderString", err) | ||||||
| @@ -276,6 +277,7 @@ func MilestoneIssuesAndPulls(ctx *context.Context) { | |||||||
| 		URLPrefix: ctx.Repo.RepoLink, | 		URLPrefix: ctx.Repo.RepoLink, | ||||||
| 		Metas:     ctx.Repo.Repository.ComposeMetas(), | 		Metas:     ctx.Repo.Repository.ComposeMetas(), | ||||||
| 		GitRepo:   ctx.Repo.GitRepo, | 		GitRepo:   ctx.Repo.GitRepo, | ||||||
|  | 		Ctx:       ctx, | ||||||
| 	}, milestone.Content) | 	}, milestone.Content) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		ctx.ServerError("RenderString", err) | 		ctx.ServerError("RenderString", err) | ||||||
|   | |||||||
| @@ -82,6 +82,7 @@ func Projects(ctx *context.Context) { | |||||||
| 			URLPrefix: ctx.Repo.RepoLink, | 			URLPrefix: ctx.Repo.RepoLink, | ||||||
| 			Metas:     ctx.Repo.Repository.ComposeMetas(), | 			Metas:     ctx.Repo.Repository.ComposeMetas(), | ||||||
| 			GitRepo:   ctx.Repo.GitRepo, | 			GitRepo:   ctx.Repo.GitRepo, | ||||||
|  | 			Ctx:       ctx, | ||||||
| 		}, projects[i].Description) | 		}, projects[i].Description) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			ctx.ServerError("RenderString", err) | 			ctx.ServerError("RenderString", err) | ||||||
| @@ -324,6 +325,7 @@ func ViewProject(ctx *context.Context) { | |||||||
| 		URLPrefix: ctx.Repo.RepoLink, | 		URLPrefix: ctx.Repo.RepoLink, | ||||||
| 		Metas:     ctx.Repo.Repository.ComposeMetas(), | 		Metas:     ctx.Repo.Repository.ComposeMetas(), | ||||||
| 		GitRepo:   ctx.Repo.GitRepo, | 		GitRepo:   ctx.Repo.GitRepo, | ||||||
|  | 		Ctx:       ctx, | ||||||
| 	}, project.Description) | 	}, project.Description) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		ctx.ServerError("RenderString", err) | 		ctx.ServerError("RenderString", err) | ||||||
|   | |||||||
| @@ -146,6 +146,7 @@ func releasesOrTags(ctx *context.Context, isTagList bool) { | |||||||
| 			URLPrefix: ctx.Repo.RepoLink, | 			URLPrefix: ctx.Repo.RepoLink, | ||||||
| 			Metas:     ctx.Repo.Repository.ComposeMetas(), | 			Metas:     ctx.Repo.Repository.ComposeMetas(), | ||||||
| 			GitRepo:   ctx.Repo.GitRepo, | 			GitRepo:   ctx.Repo.GitRepo, | ||||||
|  | 			Ctx:       ctx, | ||||||
| 		}, r.Note) | 		}, r.Note) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			ctx.ServerError("RenderString", err) | 			ctx.ServerError("RenderString", err) | ||||||
| @@ -215,6 +216,7 @@ func SingleRelease(ctx *context.Context) { | |||||||
| 		URLPrefix: ctx.Repo.RepoLink, | 		URLPrefix: ctx.Repo.RepoLink, | ||||||
| 		Metas:     ctx.Repo.Repository.ComposeMetas(), | 		Metas:     ctx.Repo.Repository.ComposeMetas(), | ||||||
| 		GitRepo:   ctx.Repo.GitRepo, | 		GitRepo:   ctx.Repo.GitRepo, | ||||||
|  | 		Ctx:       ctx, | ||||||
| 	}, release.Note) | 	}, release.Note) | ||||||
| 	if err != nil { | 	if err != nil { | ||||||
| 		ctx.ServerError("RenderString", err) | 		ctx.ServerError("RenderString", err) | ||||||
|   | |||||||
| @@ -272,6 +272,7 @@ func Milestones(ctx *context.Context) { | |||||||
| 		milestones[i].RenderedContent, err = markdown.RenderString(&markup.RenderContext{ | 		milestones[i].RenderedContent, err = markdown.RenderString(&markup.RenderContext{ | ||||||
| 			URLPrefix: milestones[i].Repo.Link(), | 			URLPrefix: milestones[i].Repo.Link(), | ||||||
| 			Metas:     milestones[i].Repo.ComposeMetas(), | 			Metas:     milestones[i].Repo.ComposeMetas(), | ||||||
|  | 			Ctx:       ctx, | ||||||
| 		}, milestones[i].Content) | 		}, milestones[i].Content) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			ctx.ServerError("RenderString", err) | 			ctx.ServerError("RenderString", err) | ||||||
|   | |||||||
| @@ -124,6 +124,7 @@ func Profile(ctx *context.Context) { | |||||||
| 			URLPrefix: ctx.Repo.RepoLink, | 			URLPrefix: ctx.Repo.RepoLink, | ||||||
| 			Metas:     map[string]string{"mode": "document"}, | 			Metas:     map[string]string{"mode": "document"}, | ||||||
| 			GitRepo:   ctx.Repo.GitRepo, | 			GitRepo:   ctx.Repo.GitRepo, | ||||||
|  | 			Ctx:       ctx, | ||||||
| 		}, ctxUser.Description) | 		}, ctxUser.Description) | ||||||
| 		if err != nil { | 		if err != nil { | ||||||
| 			ctx.ServerError("RenderString", err) | 			ctx.ServerError("RenderString", err) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user