Trim to 255 runes instead of bytes (#12150)
* Trim to 255 runes instead of bytes Prevents invalid UTF-8 encoding for Description and Website. Refs #7905 * Apply suggestions from code review Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: techknowlogick <matti@mdranta.net> Co-authored-by: zeripath <art27@cantab.net> Co-authored-by: Lauris BH <lauris@nix.lv>
This commit is contained in:
		
							parent
							
								
									12f9dd8fa9
								
							
						
					
					
						commit
						30399cf04a
					
				
					 1 changed files with 5 additions and 4 deletions
				
			
		|  | @ -11,6 +11,7 @@ import ( | ||||||
| 	"errors" | 	"errors" | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	"html/template" | 	"html/template" | ||||||
|  | 	"unicode/utf8" | ||||||
| 
 | 
 | ||||||
| 	// Needed for jpeg support
 | 	// Needed for jpeg support
 | ||||||
| 	_ "image/jpeg" | 	_ "image/jpeg" | ||||||
|  | @ -1394,11 +1395,11 @@ func GetRepositoriesByForkID(forkID int64) ([]*Repository, error) { | ||||||
| func updateRepository(e Engine, repo *Repository, visibilityChanged bool) (err error) { | func updateRepository(e Engine, repo *Repository, visibilityChanged bool) (err error) { | ||||||
| 	repo.LowerName = strings.ToLower(repo.Name) | 	repo.LowerName = strings.ToLower(repo.Name) | ||||||
| 
 | 
 | ||||||
| 	if len(repo.Description) > 255 { | 	if utf8.RuneCountInString(repo.Description) > 255 { | ||||||
| 		repo.Description = repo.Description[:255] | 		repo.Description = string([]rune(repo.Description)[:255]) | ||||||
| 	} | 	} | ||||||
| 	if len(repo.Website) > 255 { | 	if utf8.RuneCountInString(repo.Website) > 255 { | ||||||
| 		repo.Website = repo.Website[:255] | 		repo.Website = string([]rune(repo.Website)[:255]) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if _, err = e.ID(repo.ID).AllCols().Update(repo); err != nil { | 	if _, err = e.ID(repo.ID).AllCols().Update(repo); err != nil { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue