Subject: bug#3230: 23.0.93; Make dired-actual-switches safe local variable?

From: Stefan Monnier <[email-masked]>
Date: Thu, 24 Feb 2011 09:57:04 -0500

> (defun dired-actual-switches-p (switches)
>   (and (stringp switches)
>        (catch 'exit
>          (mapc (lambda (switch)
>                  (unless (eq (aref switch 0) ?-)
>                    (throw 'exit nil)))
>                (split-string switches nil t))
>          t)))

Hmm, what about "-l;reboot" ?
BTW, writing a predicate is the right thing to so, and the predicate
should then go to safe-local-variable.  I'd recommend something simple
like

  (defun dired-safe-switches-p (switches)
    (string-match "\\`[- [[:alnum:]]]+\\'" switches))

Hopefully that one is safe (tho maybe we should check string-length to
avoid attacks playing on overflow).  And if it proves too restrictive,
we can make it a bit more permissive once we encounter a particular
example that warrants it.

        Stefan