mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	This PR protects against the panic referred to in chaseadmsio/goorgeous#82 by recovering from the panic and just returning the raw bytes if there is an error. Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		| @@ -5,6 +5,7 @@ | |||||||
| package markup | package markup | ||||||
|  |  | ||||||
| import ( | import ( | ||||||
|  | 	"code.gitea.io/gitea/modules/log" | ||||||
| 	"code.gitea.io/gitea/modules/markup" | 	"code.gitea.io/gitea/modules/markup" | ||||||
| 	"code.gitea.io/gitea/modules/markup/markdown" | 	"code.gitea.io/gitea/modules/markup/markdown" | ||||||
|  |  | ||||||
| @@ -31,7 +32,13 @@ func (Parser) Extensions() []string { | |||||||
| } | } | ||||||
|  |  | ||||||
| // Render renders orgmode rawbytes to HTML | // Render renders orgmode rawbytes to HTML | ||||||
| func Render(rawBytes []byte, urlPrefix string, metas map[string]string, isWiki bool) []byte { | func Render(rawBytes []byte, urlPrefix string, metas map[string]string, isWiki bool) (result []byte) { | ||||||
|  | 	defer func() { | ||||||
|  | 		if err := recover(); err != nil { | ||||||
|  | 			log.Error(4, "Panic in orgmode.Render: %v Just returning the rawBytes", err) | ||||||
|  | 			result = rawBytes | ||||||
|  | 		} | ||||||
|  | 	}() | ||||||
| 	htmlFlags := blackfriday.HTML_USE_XHTML | 	htmlFlags := blackfriday.HTML_USE_XHTML | ||||||
| 	htmlFlags |= blackfriday.HTML_SKIP_STYLE | 	htmlFlags |= blackfriday.HTML_SKIP_STYLE | ||||||
| 	htmlFlags |= blackfriday.HTML_OMIT_CONTENTS | 	htmlFlags |= blackfriday.HTML_OMIT_CONTENTS | ||||||
| @@ -40,9 +47,8 @@ func Render(rawBytes []byte, urlPrefix string, metas map[string]string, isWiki b | |||||||
| 		URLPrefix: urlPrefix, | 		URLPrefix: urlPrefix, | ||||||
| 		IsWiki:    isWiki, | 		IsWiki:    isWiki, | ||||||
| 	} | 	} | ||||||
|  | 	result = goorgeous.Org(rawBytes, renderer) | ||||||
| 	result := goorgeous.Org(rawBytes, renderer) | 	return | ||||||
| 	return result |  | ||||||
| } | } | ||||||
|  |  | ||||||
| // RenderString reners orgmode string to HTML string | // RenderString reners orgmode string to HTML string | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user