[ 
https://issues.apache.org/jira/browse/HADOOP-8139?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Daryn Sharp updated HADOOP-8139:
--------------------------------

    Attachment: HADOOP-8139-5.patch

I believe this patch should not introduce incompatibilities with current 
behavior.

Had to remove Path(File) logic from RLFS because hadoop can return home dir 
paths, etc with / in them.  Forcing them to parse as local is inappropriate in 
those cases.  The "intelligence" when parsing windows paths should now handle 
the paths correctly.  Moved ^ handling into FileSystem when the path is being 
converted from native to ensure consistency in path handling.

Minor change to not parse windows path as native if it contains a /.  Corrects 
inconsistency where the user may be trying to use URIs and quoting the first 
char of the path.

I was able to test by manually flipping the value of Path.WINDOWS.  The final 
test case of course failed when trying to call cygwin.

Please let me know if this is sufficient for 23.2 w/o a blocker.  Thanks!
                
> Path does not allow metachars to be escaped
> -------------------------------------------
>
>                 Key: HADOOP-8139
>                 URL: https://issues.apache.org/jira/browse/HADOOP-8139
>             Project: Hadoop Common
>          Issue Type: Bug
>          Components: fs
>    Affects Versions: 0.23.0, 0.24.0
>            Reporter: Daryn Sharp
>            Assignee: Daryn Sharp
>            Priority: Blocker
>         Attachments: HADOOP-8139-2.patch, HADOOP-8139-3.patch, 
> HADOOP-8139-4.patch, HADOOP-8139-5.patch, HADOOP-8139.patch, HADOOP-8139.patch
>
>
> Path converts "\" into "/", probably for windows support?  This means it's 
> impossible for the user to escape metachars in a path name.  Glob expansion 
> can have deadly results.
> Here are the most egregious examples. A user accidentally creates a path like 
> "/user/me/*/file".  Now they want to remove it.
> {noformat}"hadoop fs -rmr -skipTrash '/user/me/\*'" becomes...
> "hadoop fs -rmr -skipTrash /user/me/*"{noformat}
> * User/Admin: Nuked their home directory or any given directory
> {noformat}"hadoop fs -rmr -skipTrash '\*'" becomes...
> "hadoop fs -rmr -skipTrash /*"{noformat}
> * User:  Deleted _everything_ they have access to on the cluster
> * Admin: *Nukes the entire cluster*
> Note: FsShell is shown for illustrative purposes, however the problem is in 
> the Path object, not FsShell.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to