From 5437a758921b968d08d7319357e5bfb10f4699c3 Mon Sep 17 00:00:00 2001 From: Sunny Date: Mon, 8 Nov 2021 01:50:56 +0530 Subject: [PATCH 1/2] Make ssh commands used in the git smart transport compatible with libgit2 (#852) * Fix ssh commands used in go SmartSubtransport Before the fix, the commands sent were of the form: ``` git-upload-pack "/bar/test-reponame" ``` This resulted in the git server returning error: `error parsing command: invalid git command` This change replaces the double quotes with single quotes: ``` git-upload-pack '/bar/test-reponame' ``` * Update ssh.go Co-authored-by: lhchavez (cherry picked from commit 6cea7a7a59f44e0e72ca577fbea65a042b3fb26b) --- ssh.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/ssh.go b/ssh.go index dd2725e..0581ca0 100644 --- a/ssh.go +++ b/ssh.go @@ -17,6 +17,7 @@ import ( "net" "net/url" "runtime" + "strings" "unsafe" "golang.org/x/crypto/ssh" @@ -74,6 +75,13 @@ func (t *sshSmartSubtransport) Action(urlString string, action SmartServiceActio return nil, err } + // Escape \ and '. + uPath := strings.Replace(u.Path, `\`, `\\`, -1) + uPath = strings.Replace(uPath, `'`, `\'`, -1) + + // TODO: Add percentage decode similar to libgit2. + // Refer: https://github.com/libgit2/libgit2/blob/358a60e1b46000ea99ef10b4dd709e92f75ff74b/src/str.c#L455-L481 + var cmd string switch action { case SmartServiceActionUploadpackLs, SmartServiceActionUploadpack: @@ -83,7 +91,7 @@ func (t *sshSmartSubtransport) Action(urlString string, action SmartServiceActio } t.Close() } - cmd = fmt.Sprintf("git-upload-pack %q", u.Path) + cmd = fmt.Sprintf("git-upload-pack '%s'", uPath) case SmartServiceActionReceivepackLs, SmartServiceActionReceivepack: if t.currentStream != nil { @@ -92,7 +100,7 @@ func (t *sshSmartSubtransport) Action(urlString string, action SmartServiceActio } t.Close() } - cmd = fmt.Sprintf("git-receive-pack %q", u.Path) + cmd = fmt.Sprintf("git-receive-pack '%s'", uPath) default: return nil, fmt.Errorf("unexpected action: %v", action) -- 2.45.2 From 2b2fd82a3b719c4a09f79998e4410df57da2beba Mon Sep 17 00:00:00 2001 From: lhchavez Date: Tue, 9 Nov 2021 06:14:49 -0800 Subject: [PATCH 2/2] Please run checks -- 2.45.2