You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2017/04/11 20:20:46 UTC
maven-wagon git commit: [WAGON-363] wagon-ftp fails to create
non-existing directory when path contains "/../"
Repository: maven-wagon
Updated Branches:
refs/heads/master f76c0982b -> 1247688c2
[WAGON-363] wagon-ftp fails to create non-existing directory when path contains "/../"
This closes #33
Project: http://git-wip-us.apache.org/repos/asf/maven-wagon/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-wagon/commit/1247688c
Tree: http://git-wip-us.apache.org/repos/asf/maven-wagon/tree/1247688c
Diff: http://git-wip-us.apache.org/repos/asf/maven-wagon/diff/1247688c
Branch: refs/heads/master
Commit: 1247688c22984fe40c6e51ce7c05315c33b10769
Parents: f76c098
Author: Stefan Braune <st...@novum-online.de>
Authored: Tue Mar 21 01:50:43 2017 +0100
Committer: Michael Osipov <mi...@apache.org>
Committed: Tue Apr 11 22:20:08 2017 +0200
----------------------------------------------------------------------
.../maven/wagon/providers/ftp/FtpWagon.java | 26 ++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/maven-wagon/blob/1247688c/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
----------------------------------------------------------------------
diff --git a/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java b/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
index c234e36..ddaadfc 100644
--- a/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
+++ b/wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java
@@ -49,6 +49,7 @@ import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
+
/**
* FtpWagon
*
@@ -82,6 +83,7 @@ public class FtpWagon
this.passiveMode = passiveMode;
}
+ @Override
protected void openConnectionInternal()
throws ConnectionException, AuthenticationException
{
@@ -192,6 +194,7 @@ public class FtpWagon
return new FTPClient();
}
+ @Override
protected void firePutCompleted( Resource resource, File file )
{
try
@@ -223,6 +226,7 @@ public class FtpWagon
super.firePutCompleted( resource, file );
}
+ @Override
protected void fireGetCompleted( Resource resource, File localFile )
{
try
@@ -239,6 +243,7 @@ public class FtpWagon
super.fireGetCompleted( resource, localFile );
}
+ @Override
public void closeConnection()
throws ConnectionException
{
@@ -256,6 +261,7 @@ public class FtpWagon
}
}
+ @Override
public void fillOutputData( OutputData outputData )
throws TransferFailedException
{
@@ -343,6 +349,7 @@ public class FtpWagon
//
// ----------------------------------------------------------------------
+ @Override
public void fillInputData( InputData inputData )
throws TransferFailedException, ResourceDoesNotExistException
{
@@ -421,23 +428,27 @@ public class FtpWagon
this.wagon = wagon;
}
+ @Override
public void protocolCommandSent( ProtocolCommandEvent event )
{
wagon.fireSessionDebug( "Command sent: " + event.getMessage() );
}
+ @Override
public void protocolReplyReceived( ProtocolCommandEvent event )
{
wagon.fireSessionDebug( "Reply received: " + event.getMessage() );
}
}
+ @Override
protected void fireSessionDebug( String msg )
{
super.fireSessionDebug( msg );
}
+ @Override
public List<String> getFileList( String destinationDirectory )
throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
{
@@ -476,6 +487,7 @@ public class FtpWagon
}
}
+ @Override
public boolean resourceExists( String resourceName )
throws TransferFailedException, AuthorizationException
{
@@ -503,11 +515,13 @@ public class FtpWagon
}
}
+ @Override
public boolean supportsDirectoryCopy()
{
return true;
}
+ @Override
public void putDirectory( File sourceDirectory, String destinationDirectory )
throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException
{
@@ -769,21 +783,29 @@ public class FtpWagon
String nextDir = fileName.substring( 0, slashPos );
+ boolean changedDir = false;
// we only create the nextDir if it doesn't yet exist
if ( !ftp.changeWorkingDirectory( nextDir ) )
{
ok &= ftp.makeDirectory( nextDir );
}
+ else
+ {
+ changedDir = true;
+ }
if ( ok )
{
// set the permissions for the freshly created directory
setPermissions( permissions );
- ftp.changeWorkingDirectory( nextDir );
+ if ( !changedDir )
+ {
+ ftp.changeWorkingDirectory( nextDir );
+ }
// now create the deeper directories
- String remainingDirs = fileName.substring( slashPos + 1 );
+ final String remainingDirs = fileName.substring( slashPos + 1 );
ok &= makeFtpDirectoryRecursive( remainingDirs, permissions );
}
}