mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Fix escaping issue in diff (#14153)
Ensure that linecontent is escaped before passing to template.HTML Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		@@ -10,6 +10,7 @@ import (
 | 
			
		||||
	"bytes"
 | 
			
		||||
	"context"
 | 
			
		||||
	"fmt"
 | 
			
		||||
	"html"
 | 
			
		||||
	"html/template"
 | 
			
		||||
	"io"
 | 
			
		||||
	"io/ioutil"
 | 
			
		||||
@@ -164,9 +165,9 @@ func getDiffLineSectionInfo(treePath, line string, lastLeftIdx, lastRightIdx int
 | 
			
		||||
// escape a line's content or return <br> needed for copy/paste purposes
 | 
			
		||||
func getLineContent(content string) string {
 | 
			
		||||
	if len(content) > 0 {
 | 
			
		||||
		return content
 | 
			
		||||
		return html.EscapeString(content)
 | 
			
		||||
	}
 | 
			
		||||
	return "\n"
 | 
			
		||||
	return "<br>"
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// DiffSection represents a section of a DiffFile.
 | 
			
		||||
@@ -357,8 +358,6 @@ func (diffSection *DiffSection) GetComputedInlineDiffFor(diffLine *DiffLine) tem
 | 
			
		||||
	diffRecord := diffMatchPatch.DiffMain(highlight.Code(diffSection.FileName, diff1[1:]), highlight.Code(diffSection.FileName, diff2[1:]), true)
 | 
			
		||||
	diffRecord = diffMatchPatch.DiffCleanupEfficiency(diffRecord)
 | 
			
		||||
 | 
			
		||||
	diffRecord = diffMatchPatch.DiffCleanupEfficiency(diffRecord)
 | 
			
		||||
 | 
			
		||||
	return diffToHTML(diffSection.FileName, diffRecord, diffLine.Type)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user