From 6fd921e7d7deb88c5a3f172022b64a0539edbdd6 Mon Sep 17 00:00:00 2001 From: Rasmus Date: Sat, 29 Nov 2014 13:12:10 +0100 Subject: [PATCH 1/2] ange-ftp.el: Disallow more dired ls-flags * net/ange-ftp.el (ange-ftp-switches-ok): Disallow flags causing trouble with ls over ftp. These flags result in ls returning no output, causing Tramp-breakage. Fixes: debbugs:19192 --- lisp/ChangeLog | 6 ++++++ lisp/net/ange-ftp.el | 12 +++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 2a450a7..7d0992e 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2014-11-29 Rasmus Pank Roulund + + * net/ange-ftp.el (ange-ftp-switches-ok): Disallow flags causing + trouble with ls over ftp. These flags result in ls returning no + output, causing Tramp-breakage. (bug#19192) + 2014-11-29 Stephen Berman Stefan Monnier diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el index d7632ed..a2b0b46 100644 --- a/lisp/net/ange-ftp.el +++ b/lisp/net/ange-ftp.el @@ -2831,16 +2831,26 @@ match subdirectories as well.") files ange-ftp-files-hashtable))) (defun ange-ftp-switches-ok (switches) - "Return SWITCHES (a string) if suitable for our use." + "Return SWITCHES (a string) if suitable for use with ls over ftp." (and (stringp switches) ;; We allow the A switch, which lists all files except "." and ;; "..". This is OK because we manually insert these entries ;; in the hash table. (string-match "--\\(almost-\\)?all\\>\\|\\(\\`\\| \\)-[[:alpha:]]*[aA]" switches) + ;; Allow flags starting with a single dash (string-match "\\(\\`\\| \\)-[[:alpha:]]*l" switches) + ;; Disallow recursive flag (not (string-match "--recursive\\>\\|\\(\\`\\| \\)-[[:alpha:]]*R" switches)) + ;; Disallow most long flags from (man "ls"), version 8.23 of July 2014. + (not (string-match + (concat + "--\\(block-size\\|color\\|format\\|group-directories-first\\|" + "human-readable\\|dereference-command-line\\|hide\\|indicator-style\\|" + "dereference-command-line-symlink-to-dir\\|inode\\|ignore\\|dereference\\|" + "numeric-uid-gid\\|indicator-style\\|hide-control-chars\\|quoting-style\\|" + "sort\\|time\\|time-style\\|width\\)"))) switches)) (defun ange-ftp-get-files (directory &optional no-error) -- 2.1.3