From dfda7d14631c0c2225317b1c2e0317e2f1ba2630 Mon Sep 17 00:00:00 2001 From: Michael Albinus Date: Mon, 7 Feb 2022 10:07:15 +0100 Subject: [PATCH] Sanitize ls switches in ange-ftp (bug#53360) * lisp/net/ange-ftp.el (ls-lisp--sanitize-switches): Declare. (ange-ftp-ls): Sanitize LSARGS. (Bug#53360) --- lisp/net/ange-ftp.el | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/lisp/net/ange-ftp.el b/lisp/net/ange-ftp.el index a6904fc07e9..ef8527fadae 100644 --- a/lisp/net/ange-ftp.el +++ b/lisp/net/ange-ftp.el @@ -2547,13 +2547,16 @@ can parse the output from a DIR listing for a host of type TYPE.") (defvar ange-ftp-after-parse-ls-hook nil "Normal hook run after parsing the text of an FTP directory listing.") +(declare-function ls-lisp--sanitize-switches "ls-lisp" (switches)) + (defun ange-ftp-ls (file lsargs parse &optional no-error wildcard) "Return the output of a `DIR' or `ls' command done over FTP. FILE is the full name of the remote file, LSARGS is any args to pass to the `ls' command, and PARSE specifies that the output should be parsed and stored away in the internal cache." - (while (string-match "^--dired\\s-+" lsargs) - (setq lsargs (replace-match "" nil t lsargs))) + (when (string-match "--" lsargs) + (require 'ls-lisp) + (setq lsargs (ls-lisp--sanitize-switches lsargs))) ;; If parse is t, we assume that file is a directory. i.e. we only parse ;; full directory listings. (let* ((ange-ftp-this-file (ange-ftp-expand-file-name file)) -- 2.39.5