From 3ee021dc19e314f6f456867ec43c25aed5cc41b8 Mon Sep 17 00:00:00 2001 From: Eshel Yaron Date: Fri, 28 Mar 2025 17:57:35 +0100 Subject: [PATCH] ; (find-function-search-for-symbol): Be cautious with macros. * lisp/emacs-lisp/find-func.el (find-function-search-for-symbol): Only attempt to expand macros in trusted buffers. (Bug#77341) --- lisp/emacs-lisp/find-func.el | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/lisp/emacs-lisp/find-func.el b/lisp/emacs-lisp/find-func.el index 8f488a9c00a..6bdfb4bc38b 100644 --- a/lisp/emacs-lisp/find-func.el +++ b/lisp/emacs-lisp/find-func.el @@ -487,11 +487,14 @@ The search is done in the source for library LIBRARY." ;; If the regexp search didn't find the location of ;; the symbol (for example, because it is generated by ;; a macro), try a slightly more expensive search that - ;; expands macros until it finds the symbol. + ;; expands macros until it finds the symbol. Since + ;; macro-expansion involves arbitrary code execution, + ;; only attempt it in trusted buffers. (cons (current-buffer) - (find-function--search-by-expanding-macros - (current-buffer) symbol type - form-matcher-factory)))))))))) + (when (trusted-content-p) + (find-function--search-by-expanding-macros + (current-buffer) symbol type + form-matcher-factory))))))))))) ;;;###autoload (defun find-function-update-type-alist (symbol type variable)