Subject: [PATCH] Use -P switch when calling 'python-interpreter'

From: Augusto Stoffel <[email-masked]>
Date: Wed, 17 Apr 2024 20:23:30 +0200

Tags: patch

The attachment should be self-explanatory, otherwise let me know.

>From 04db8a3fbb29f497fdc728f4413aea162650b30b Mon Sep 17 00:00:00 2001
From: Augusto Stoffel <[email-masked]>
Date: Wed, 17 Apr 2024 20:17:22 +0200
Subject: [PATCH] Use -P switch when calling 'python-interpreter'

This excludes the current directory from Python's module load path,
which can be unsafe.

* lisp/progmodes/python.el (python--list-imports): Use -P switch
(python--do-isort): Use -P switch
(python-fix-imports): Use -P switch
---
 lisp/progmodes/python.el | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lisp/progmodes/python.el b/lisp/progmodes/python.el
index 85279d3e84b..180a8357aad 100644
--- a/lisp/progmodes/python.el
+++ b/lisp/progmodes/python.el
@@ -6805,7 +6805,7 @@ python--list-imports
                                   (append
                                    (split-string-shell-command
                                     python-interpreter-args)
-                                   `("-c" ,python--list-imports)
+                                   `("-Pc" ,python--list-imports)
                                     (list (or name "")))))
                        (with-current-buffer buffer
                          (apply #'call-process
@@ -6814,7 +6814,7 @@ python--list-imports
                                 (append
                                  (split-string-shell-command
                                   python-interpreter-args)
-                                 `("-c" ,python--list-imports)
+                                 `("-Pc" ,python--list-imports)
                                  (list (or name ""))
                                  (mapcar #'file-local-name source))))))
              lines)
@@ -6862,7 +6862,7 @@ python--do-isort
                                (append
                                  (split-string-shell-command
                                   python-interpreter-args)
-                                 '("-m" "isort" "-")
+                                 '("-Pm" "isort" "-")
                                  args)))
                 (tick (buffer-chars-modified-tick)))
             (unless (eq 0 status)
@@ -6940,7 +6940,7 @@ python-fix-imports
                   (append
                    (split-string-shell-command
                     python-interpreter-args)
-                   '("-m" "pyflakes"))))
+                   '("-Pm" "pyflakes"))))
         (goto-char (point-min))
         (when (looking-at-p ".* No module named pyflakes$")
           (error "%s couldn't find pyflakes" python-interpreter))
-- 
2.44.0