mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 00:20:25 +08:00 
			
		
		
		
	Completely quote AppPath and CustomConf paths (#12955)
* Completely quote AppPath and CustomConf paths Properly handle spaces in AppPath and CustomConf within hooks and authorized_keys. Unfortunately here we don't seem to be able to get away with using go-shellquote as it appears that Windows doesn't play too well with singlequote quoting - therefore we will avoid singlequote quoting unless we absolutely cannot get away without it, e.g. \n or !. Fix #10813 Signed-off-by: Andrew Thornton <art27@cantab.net> * missing change Signed-off-by: Andrew Thornton <art27@cantab.net> * fix Test_CmdKeys Signed-off-by: Andrew Thornton <art27@cantab.net>
This commit is contained in:
		@@ -38,8 +38,8 @@ import (
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	tplCommentPrefix = `# gitea public key`
 | 
			
		||||
	tplCommand       = "%s --config=%q serv key-%d"
 | 
			
		||||
	tplPublicKey     = tplCommentPrefix + "\n" + `command=%q,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty %s` + "\n"
 | 
			
		||||
	tplCommand       = "%s --config=%s serv key-%d"
 | 
			
		||||
	tplPublicKey     = tplCommentPrefix + "\n" + `command=%s,no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty %s` + "\n"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
var sshOpLocker sync.Mutex
 | 
			
		||||
@@ -84,7 +84,7 @@ func (key *PublicKey) OmitEmail() string {
 | 
			
		||||
 | 
			
		||||
// AuthorizedString returns formatted public key string for authorized_keys file.
 | 
			
		||||
func (key *PublicKey) AuthorizedString() string {
 | 
			
		||||
	return fmt.Sprintf(tplPublicKey, fmt.Sprintf(tplCommand, setting.AppPath, setting.CustomConf, key.ID), key.Content)
 | 
			
		||||
	return fmt.Sprintf(tplPublicKey, util.ShellEscape(fmt.Sprintf(tplCommand, util.ShellEscape(setting.AppPath), util.ShellEscape(setting.CustomConf), key.ID)), key.Content)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func extractTypeFromBase64Key(key string) (string, error) {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user