Browse Source

#2850 fix potential SSH commands dislocation

When use builtin SSH server with concurrent operations, there are probabilities
One connection could use the command from another connections.

Fix this by set SSH_ORIGINAL_COMMAND for each command, not set in global scope.
tags/v1.2.0-rc1
Unknwon 9 years ago
parent
commit
762a19a143
4 changed files with 4 additions and 4 deletions
  1. +1
    -1
      README.md
  2. +1
    -1
      gogs.go
  3. +1
    -1
      modules/ssh/ssh.go
  4. +1
    -1
      templates/.VERSION

+ 1
- 1
README.md View File

@@ -3,7 +3,7 @@ Gogs - Go Git Service [![Build Status](https://travis-ci.org/gogits/gogs.svg?bra


![](https://github.com/gogits/gogs/blob/master/public/img/gogs-large-resize.png?raw=true) ![](https://github.com/gogits/gogs/blob/master/public/img/gogs-large-resize.png?raw=true)


##### Current version: 0.9.12
##### Current version: 0.9.13


| Web | UI | Preview | | Web | UI | Preview |
|:-------------:|:-------:|:-------:| |:-------------:|:-------:|:-------:|


+ 1
- 1
gogs.go View File

@@ -17,7 +17,7 @@ import (
"github.com/gogits/gogs/modules/setting" "github.com/gogits/gogs/modules/setting"
) )


const APP_VER = "0.9.12.0316"
const APP_VER = "0.9.13.0318"


func init() { func init() {
runtime.GOMAXPROCS(runtime.NumCPU()) runtime.GOMAXPROCS(runtime.NumCPU())


+ 1
- 1
modules/ssh/ssh.go View File

@@ -62,12 +62,12 @@ func handleServerConn(keyID string, chans <-chan ssh.NewChannel) {
} }
case "exec": case "exec":
cmdName := strings.TrimLeft(payload, "'()") cmdName := strings.TrimLeft(payload, "'()")
os.Setenv("SSH_ORIGINAL_COMMAND", cmdName)
log.Trace("SSH: Payload: %v", cmdName) log.Trace("SSH: Payload: %v", cmdName)


args := []string{"serv", "key-" + keyID, "--config=" + setting.CustomConf} args := []string{"serv", "key-" + keyID, "--config=" + setting.CustomConf}
log.Trace("SSH: Arguments: %v", args) log.Trace("SSH: Arguments: %v", args)
cmd := exec.Command(setting.AppPath, args...) cmd := exec.Command(setting.AppPath, args...)
cmd.Env = append(os.Environ(), "SSH_ORIGINAL_COMMAND="+cmdName)


stdout, err := cmd.StdoutPipe() stdout, err := cmd.StdoutPipe()
if err != nil { if err != nil {


+ 1
- 1
templates/.VERSION View File

@@ -1 +1 @@
0.9.12.0316
0.9.13.0318

Loading…
Cancel
Save