mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-29 10:57:44 +09:00 
			
		
		
		
	fix possible panic
This commit is contained in:
		| @@ -271,14 +271,24 @@ OUTER_LOOP: | |||||||
| 			tagName := token.Data | 			tagName := token.Data | ||||||
| 			// If this is an excluded tag, we skip processing all output until a close tag is encountered. | 			// If this is an excluded tag, we skip processing all output until a close tag is encountered. | ||||||
| 			if strings.EqualFold("a", tagName) || strings.EqualFold("code", tagName) || strings.EqualFold("pre", tagName) { | 			if strings.EqualFold("a", tagName) || strings.EqualFold("code", tagName) || strings.EqualFold("pre", tagName) { | ||||||
|  | 				stackNum := 1 | ||||||
| 				for html.ErrorToken != tokenizer.Next() { | 				for html.ErrorToken != tokenizer.Next() { | ||||||
| 					token = tokenizer.Token() | 					token = tokenizer.Token() | ||||||
|  |  | ||||||
| 					// Copy the token to the output verbatim | 					// Copy the token to the output verbatim | ||||||
| 					buf.WriteString(token.String()) | 					buf.WriteString(token.String()) | ||||||
| 					// If this is the close tag, we are done |  | ||||||
|  | 					if token.Type == html.StartTagToken { | ||||||
|  | 						stackNum++ | ||||||
|  | 					} | ||||||
|  |  | ||||||
|  | 					// If this is the close tag to the outer-most, we are done | ||||||
| 					if token.Type == html.EndTagToken && strings.EqualFold(tagName, token.Data) { | 					if token.Type == html.EndTagToken && strings.EqualFold(tagName, token.Data) { | ||||||
| 						break | 						stackNum-- | ||||||
|  |  | ||||||
|  | 						if stackNum == 0 { | ||||||
|  | 							break | ||||||
|  | 						} | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 				continue OUTER_LOOP | 				continue OUTER_LOOP | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user