hack-local-variables-filter fix for bug#12155
* lisp/files.el (hack-local-variables-filter): If an eval: form is not known to be safe, and enable-local-variables is :safe, then ignore the form totally, as is done for non-eval forms.
This commit is contained in:
parent
db74a5fcb7
commit
f40b9f106b
2 changed files with 16 additions and 5 deletions
|
@ -1,3 +1,9 @@
|
|||
2012-08-07 Glenn Morris <rgm@gnu.org>
|
||||
|
||||
* files.el (hack-local-variables-filter): If an eval: form is not
|
||||
known to be safe, and enable-local-variables is :safe, then ignore
|
||||
the form totally, as is done for non-eval forms. (Bug#12155)
|
||||
|
||||
2012-08-07 Chong Yidong <cyd@gnu.org>
|
||||
|
||||
* mouse.el (mouse-drag-track): Deactivate the mark before popping.
|
||||
|
|
|
@ -3107,11 +3107,16 @@ DIR-NAME is the name of the associated directory. Otherwise it is nil."
|
|||
;; Obey `enable-local-eval'.
|
||||
((eq var 'eval)
|
||||
(when enable-local-eval
|
||||
(push elt all-vars)
|
||||
(or (eq enable-local-eval t)
|
||||
(hack-one-local-variable-eval-safep (eval (quote val)))
|
||||
(safe-local-variable-p var val)
|
||||
(push elt unsafe-vars))))
|
||||
(let ((safe (or (hack-one-local-variable-eval-safep
|
||||
(eval (quote val)))
|
||||
;; In case previously marked safe (bug#5636).
|
||||
(safe-local-variable-p var val))))
|
||||
;; If not safe and e-l-v = :safe, ignore totally.
|
||||
(when (or safe (not (eq enable-local-variables :safe)))
|
||||
(push elt all-vars)
|
||||
(or (eq enable-local-eval t)
|
||||
safe
|
||||
(push elt unsafe-vars))))))
|
||||
;; Ignore duplicates (except `mode') in the present list.
|
||||
((and (assq var all-vars) (not (eq var 'mode))) nil)
|
||||
;; Accept known-safe variables.
|
||||
|
|
Loading…
Add table
Reference in a new issue