mirror of
				https://codeberg.org/forgejo/forgejo.git
				synced 2025-10-31 06:21:11 +00:00 
			
		
		
		
	Backport #21646 A bug was introduced in #17865 where filepath.Join is used to join putative unadopted repository owner and names together. This is incorrect as these names are then used as repository names - which shoud have the '/' separator. This means that adoption will not work on Windows servers. Fix #21632 Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		
					parent
					
						
							
								fd4e7447e7
							
						
					
				
			
			
				commit
				
					
						3a0d000b94
					
				
			
		
					 2 changed files with 10 additions and 9 deletions
				
			
		|  | @ -8,6 +8,7 @@ import ( | |||
| 	"context" | ||||
| 	"fmt" | ||||
| 	"os" | ||||
| 	"path" | ||||
| 	"path/filepath" | ||||
| 	"strings" | ||||
| 
 | ||||
|  | @ -218,21 +219,21 @@ func DeleteUnadoptedRepository(doer, u *user_model.User, repoName string) error | |||
| 	return util.RemoveAll(repoPath) | ||||
| } | ||||
| 
 | ||||
| type unadoptedRrepositories struct { | ||||
| type unadoptedRepositories struct { | ||||
| 	repositories []string | ||||
| 	index        int | ||||
| 	start        int | ||||
| 	end          int | ||||
| } | ||||
| 
 | ||||
| func (unadopted *unadoptedRrepositories) add(repository string) { | ||||
| func (unadopted *unadoptedRepositories) add(repository string) { | ||||
| 	if unadopted.index >= unadopted.start && unadopted.index < unadopted.end { | ||||
| 		unadopted.repositories = append(unadopted.repositories, repository) | ||||
| 	} | ||||
| 	unadopted.index++ | ||||
| } | ||||
| 
 | ||||
| func checkUnadoptedRepositories(userName string, repoNamesToCheck []string, unadopted *unadoptedRrepositories) error { | ||||
| func checkUnadoptedRepositories(userName string, repoNamesToCheck []string, unadopted *unadoptedRepositories) error { | ||||
| 	if len(repoNamesToCheck) == 0 { | ||||
| 		return nil | ||||
| 	} | ||||
|  | @ -264,7 +265,7 @@ func checkUnadoptedRepositories(userName string, repoNamesToCheck []string, unad | |||
| 	} | ||||
| 	for _, repoName := range repoNamesToCheck { | ||||
| 		if !repoNames.Contains(repoName) { | ||||
| 			unadopted.add(filepath.Join(userName, repoName)) | ||||
| 			unadopted.add(path.Join(userName, repoName)) // These are not used as filepaths - but as reponames - therefore use path.Join not filepath.Join | ||||
| 		} | ||||
| 	} | ||||
| 	return nil | ||||
|  | @ -292,7 +293,7 @@ func ListUnadoptedRepositories(query string, opts *db.ListOptions) ([]string, in | |||
| 	var repoNamesToCheck []string | ||||
| 
 | ||||
| 	start := (opts.Page - 1) * opts.PageSize | ||||
| 	unadopted := &unadoptedRrepositories{ | ||||
| 	unadopted := &unadoptedRepositories{ | ||||
| 		repositories: make([]string, 0, opts.PageSize), | ||||
| 		start:        start, | ||||
| 		end:          start + opts.PageSize, | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue