You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Gary D. Gregory (Jira)" <ji...@apache.org> on 2019/12/23 18:15:00 UTC
[jira] [Resolved] (VFS-590) SFTP moveTo operation might fail on
permission checks even if the operation itself might succeed
[ https://issues.apache.org/jira/browse/VFS-590?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Gary D. Gregory resolved VFS-590.
---------------------------------
Fix Version/s: 2.5.0
Resolution: Fixed
In git master. PR# 75. Please verify and close.
> SFTP moveTo operation might fail on permission checks even if the operation itself might succeed
> ------------------------------------------------------------------------------------------------
>
> Key: VFS-590
> URL: https://issues.apache.org/jira/browse/VFS-590
> Project: Commons VFS
> Issue Type: Bug
> Affects Versions: Nightly Builds
> Reporter: L
> Priority: Major
> Fix For: 2.5.0
>
> Time Spent: 20m
> Remaining Estimate: 0h
>
> Continuing with SFTP moveTo, see VFS-588 and VFS-589 for more details.
> The permission checks that VFS performs during moveTo() can result in failure.
> org.apache.commons.vfs2.provider.AbstractFileObject.moveTo(final FileObject destFile) starts with some checks:
> {code:java}
> @Override
> public void moveTo(final FileObject destFile) throws FileSystemException
> {
> if (canRenameTo(destFile))
> {
> if (!getParent().isWriteable())
> {
> throw new FileSystemException("vfs.provider/rename-parent-read-only.error",
> getName(),
> getParent().getName());
> }
> }
> else
> {
> if (!isWriteable())
> {
> throw new FileSystemException("vfs.provider/rename-read-only.error", getName());
> }
> }
> {code}
> The problem is: isWriteable() might fail or even hang. Performing moveTo without this check might successfully rename the file.
> isWriteable() in case of SFTP can fail if the server disables SSH channelExec. Or if it does not support "id" command.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)