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)