|
@@ -887,6 +887,9 @@ func TestEscapeHomeDir(t *testing.T) {
|
|
usePubKey := true
|
|
usePubKey := true
|
|
user, _, err := httpd.AddUser(getTestUser(usePubKey), http.StatusOK)
|
|
user, _, err := httpd.AddUser(getTestUser(usePubKey), http.StatusOK)
|
|
assert.NoError(t, err)
|
|
assert.NoError(t, err)
|
|
|
|
+ dirOutsideHome := filepath.Join(homeBasePath, defaultUsername+"1", "dir")
|
|
|
|
+ err = os.MkdirAll(dirOutsideHome, os.ModePerm)
|
|
|
|
+ assert.NoError(t, err)
|
|
client, err := getSftpClient(user, usePubKey)
|
|
client, err := getSftpClient(user, usePubKey)
|
|
if assert.NoError(t, err) {
|
|
if assert.NoError(t, err) {
|
|
defer client.Close()
|
|
defer client.Close()
|
|
@@ -899,6 +902,10 @@ func TestEscapeHomeDir(t *testing.T) {
|
|
assert.Error(t, err, "reading a symbolic link outside home dir should not succeeded")
|
|
assert.Error(t, err, "reading a symbolic link outside home dir should not succeeded")
|
|
err = os.Remove(linkPath)
|
|
err = os.Remove(linkPath)
|
|
assert.NoError(t, err)
|
|
assert.NoError(t, err)
|
|
|
|
+ err = os.Symlink(dirOutsideHome, linkPath)
|
|
|
|
+ assert.NoError(t, err)
|
|
|
|
+ _, err := client.ReadDir(testDir)
|
|
|
|
+ assert.Error(t, err, "reading a symbolic link outside home dir should not succeeded")
|
|
testFilePath := filepath.Join(homeBasePath, testFileName)
|
|
testFilePath := filepath.Join(homeBasePath, testFileName)
|
|
testFileSize := int64(65535)
|
|
testFileSize := int64(65535)
|
|
err = createTestFile(testFilePath, testFileSize)
|
|
err = createTestFile(testFilePath, testFileSize)
|
|
@@ -928,6 +935,8 @@ func TestEscapeHomeDir(t *testing.T) {
|
|
assert.NoError(t, err)
|
|
assert.NoError(t, err)
|
|
err = os.RemoveAll(user.GetHomeDir())
|
|
err = os.RemoveAll(user.GetHomeDir())
|
|
assert.NoError(t, err)
|
|
assert.NoError(t, err)
|
|
|
|
+ err = os.RemoveAll(filepath.Join(homeBasePath, defaultUsername+"1"))
|
|
|
|
+ assert.NoError(t, err)
|
|
}
|
|
}
|
|
|
|
|
|
func TestHomeSpecialChars(t *testing.T) {
|
|
func TestHomeSpecialChars(t *testing.T) {
|