commit:     a33065dab4bebd476d0dcba3c1659fbe0e515469
Author:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Wed May 15 17:25:18 2024 +0000
Commit:     Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Tue May 21 17:24:00 2024 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=a33065da

Do not use shlex.split for CONFIG_PROTECT

PMS says this is a whitespace-separated list, so we should not treat it
as a shell expression.

Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>

 bin/dispatch-conf                       | 4 ++--
 bin/portageq                            | 8 ++++----
 lib/_emerge/depgraph.py                 | 6 +++---
 lib/_emerge/post_emerge.py              | 2 +-
 lib/portage/_global_updates.py          | 6 +++---
 lib/portage/dbapi/vartree.py            | 8 ++++----
 lib/portage/emaint/modules/sync/sync.py | 4 +---
 7 files changed, 18 insertions(+), 20 deletions(-)

diff --git a/bin/dispatch-conf b/bin/dispatch-conf
index 601110ce87..e34e9587f7 100755
--- a/bin/dispatch-conf
+++ b/bin/dispatch-conf
@@ -202,7 +202,7 @@ class dispatch:
         protect_obj = portage.util.ConfigProtect(
             config_root,
             config_paths,
-            
portage.util.shlex_split(portage.settings.get("CONFIG_PROTECT_MASK", "")),
+            portage.settings.get("CONFIG_PROTECT_MASK", "").split(),
             case_insensitive=("case-insensitive-fs" in 
portage.settings.features),
         )
 
@@ -616,4 +616,4 @@ if len(sys.argv) > 1:
     # for testing
     d.grind(sys.argv[1:])
 else:
-    d.grind(portage.util.shlex_split(portage.settings.get("CONFIG_PROTECT", 
"")))
+    d.grind(portage.settings.get("CONFIG_PROTECT", "").split())

diff --git a/bin/portageq b/bin/portageq
index 93fa4edeba..9ef0cb7d62 100755
--- a/bin/portageq
+++ b/bin/portageq
@@ -410,8 +410,8 @@ try:
         from portage.util import ConfigProtect
 
         settings = portage.settings
-        protect = portage.util.shlex_split(settings.get("CONFIG_PROTECT", ""))
-        protect_mask = 
portage.util.shlex_split(settings.get("CONFIG_PROTECT_MASK", ""))
+        protect = settings.get("CONFIG_PROTECT", "").split()
+        protect_mask = settings.get("CONFIG_PROTECT_MASK", "").split()
         protect_obj = ConfigProtect(
             root,
             protect,
@@ -449,8 +449,8 @@ try:
         from portage.util import ConfigProtect
 
         settings = portage.settings
-        protect = portage.util.shlex_split(settings.get("CONFIG_PROTECT", ""))
-        protect_mask = 
portage.util.shlex_split(settings.get("CONFIG_PROTECT_MASK", ""))
+        protect = settings.get("CONFIG_PROTECT", "").split()
+        protect_mask = settings.get("CONFIG_PROTECT_MASK", "").split()
         protect_obj = ConfigProtect(
             root,
             protect,

diff --git a/lib/_emerge/depgraph.py b/lib/_emerge/depgraph.py
index 9673d85f87..13add990e6 100644
--- a/lib/_emerge/depgraph.py
+++ b/lib/_emerge/depgraph.py
@@ -55,7 +55,7 @@ from portage.package.ebuild.getmaskingstatus import 
_getmaskingstatus, _MaskReas
 from portage._sets import SETPREFIX
 from portage._sets.base import InternalPackageSet
 from portage.dep._slot_operator import evaluate_slot_operator_equal_deps
-from portage.util import ConfigProtect, shlex_split, new_protect_filename
+from portage.util import ConfigProtect, new_protect_filename
 from portage.util import cmp_sort_key, writemsg, writemsg_stdout
 from portage.util import ensure_dirs, normalize_path
 from portage.util import writemsg_level, write_atomic
@@ -10650,8 +10650,8 @@ class depgraph:
                 settings = self._frozen_config.roots[root].settings
                 protect_obj[root] = ConfigProtect(
                     settings["PORTAGE_CONFIGROOT"],
-                    shlex_split(settings.get("CONFIG_PROTECT", "")),
-                    shlex_split(settings.get("CONFIG_PROTECT_MASK", "")),
+                    settings.get("CONFIG_PROTECT", "").split(),
+                    settings.get("CONFIG_PROTECT_MASK", "").split(),
                     case_insensitive=("case-insensitive-fs" in 
settings.features),
                 )
 

diff --git a/lib/_emerge/post_emerge.py b/lib/_emerge/post_emerge.py
index 37e2c3cc80..6f1f1c243d 100644
--- a/lib/_emerge/post_emerge.py
+++ b/lib/_emerge/post_emerge.py
@@ -93,7 +93,7 @@ def post_emerge(myaction, myopts, myfiles, target_root, 
trees, mtimedb, retval):
     settings.regenerate()
     settings.lock()
 
-    config_protect = portage.util.shlex_split(settings.get("CONFIG_PROTECT", 
""))
+    config_protect = settings.get("CONFIG_PROTECT", "").split()
     infodirs = settings.get("INFOPATH", "").split(":") + settings.get(
         "INFODIR", ""
     ).split(":")

diff --git a/lib/portage/_global_updates.py b/lib/portage/_global_updates.py
index f7997fc37c..4ed8a3f9a7 100644
--- a/lib/portage/_global_updates.py
+++ b/lib/portage/_global_updates.py
@@ -15,7 +15,7 @@ from portage.update import (
     update_config_files,
     update_dbentry,
 )
-from portage.util import grabfile, shlex_split, writemsg, writemsg_stdout, 
write_atomic
+from portage.util import grabfile, writemsg, writemsg_stdout, write_atomic
 
 
 def _global_updates(trees, prev_mtimes, quiet=False, if_mtime_changed=True):
@@ -227,8 +227,8 @@ def _do_global_updates(trees, prev_mtimes, quiet=False, 
if_mtime_changed=True):
 
         update_config_files(
             root,
-            shlex_split(mysettings.get("CONFIG_PROTECT", "")),
-            shlex_split(mysettings.get("CONFIG_PROTECT_MASK", "")),
+            mysettings.get("CONFIG_PROTECT", "").split(),
+            mysettings.get("CONFIG_PROTECT_MASK", "").split(),
             repo_map,
             match_callback=_config_repo_match,
             case_insensitive="case-insensitive-fs" in mysettings.features,

diff --git a/lib/portage/dbapi/vartree.py b/lib/portage/dbapi/vartree.py
index c6b45ba422..beee82f8b0 100644
--- a/lib/portage/dbapi/vartree.py
+++ b/lib/portage/dbapi/vartree.py
@@ -1863,8 +1863,8 @@ class dblink:
         if self._protect_obj is None:
             self._protect_obj = ConfigProtect(
                 self._eroot,
-                portage.util.shlex_split(self.settings.get("CONFIG_PROTECT", 
"")),
-                
portage.util.shlex_split(self.settings.get("CONFIG_PROTECT_MASK", "")),
+                self.settings.get("CONFIG_PROTECT", "").split(),
+                self.settings.get("CONFIG_PROTECT_MASK", "").split(),
                 case_insensitive=("case-insensitive-fs" in 
self.settings.features),
             )
 
@@ -2142,8 +2142,8 @@ class dblink:
         if not include_config:
             confprot = ConfigProtect(
                 settings["EROOT"],
-                portage.util.shlex_split(settings.get("CONFIG_PROTECT", "")),
-                portage.util.shlex_split(settings.get("CONFIG_PROTECT_MASK", 
"")),
+                settings.get("CONFIG_PROTECT", "").split(),
+                settings.get("CONFIG_PROTECT_MASK", "").split(),
                 case_insensitive=("case-insensitive-fs" in settings.features),
             )
 

diff --git a/lib/portage/emaint/modules/sync/sync.py 
b/lib/portage/emaint/modules/sync/sync.py
index ea009d16c7..a1fbfc49e3 100644
--- a/lib/portage/emaint/modules/sync/sync.py
+++ b/lib/portage/emaint/modules/sync/sync.py
@@ -298,9 +298,7 @@ class SyncRepos:
 
         chk_updated_cfg_files(
             self.emerge_config.target_config.root,
-            portage.util.shlex_split(
-                
self.emerge_config.target_config.settings.get("CONFIG_PROTECT", "")
-            ),
+            self.emerge_config.target_config.settings.get("CONFIG_PROTECT", 
"").split(),
         )
 
         msgs = []

Reply via email to