From: Tobias Kaufmann <tobias.ka.kaufm...@bmw.de>

If a package-name contains characters which are used
in regular expressions (e.g. libstdc++) this might
break the regexp compilation.

To solve this issue the package names are escaped before using
them in the regular expression

Signed-off-by: Tobias Kaufmann <tobias.ka.kaufm...@bmw.de>
---
 meta/lib/oe/package_manager/deb/__init__.py | 5 +++--
 meta/lib/oe/package_manager/ipk/__init__.py | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/meta/lib/oe/package_manager/deb/__init__.py 
b/meta/lib/oe/package_manager/deb/__init__.py
index 9f112ae25b..4d5921044a 100644
--- a/meta/lib/oe/package_manager/deb/__init__.py
+++ b/meta/lib/oe/package_manager/deb/__init__.py
@@ -208,8 +208,9 @@ class DpkgPM(OpkgDpkgPM):
 
                     status = sf.read()
                     for pkg in packages:
-                        status = re.sub(r"Package: %s\n((?:[^\n]+\n)*?)Status: 
(.*)(?:unpacked|installed)" % pkg,
-                                        r"Package: %s\n\1Status: \2%s" % (pkg, 
status_tag),
+                        _pkg = re.escape(pkg)
+                        status = re.sub(r"Package: %s\n((?:[^\n]+\n)*?)Status: 
(.*)(?:unpacked|installed)" % _pkg,
+                                        r"Package: %s\n\1Status: \2%s" % 
(_pkg, status_tag),
                                         status)
 
                     tmp_sf.write(status)
diff --git a/meta/lib/oe/package_manager/ipk/__init__.py 
b/meta/lib/oe/package_manager/ipk/__init__.py
index 4cd3963111..503a4f5181 100644
--- a/meta/lib/oe/package_manager/ipk/__init__.py
+++ b/meta/lib/oe/package_manager/ipk/__init__.py
@@ -207,8 +207,9 @@ class OpkgPM(OpkgDpkgPM):
 
                     status = sf.read()
                     for pkg in packages:
-                        status = re.sub(r"Package: %s\n((?:[^\n]+\n)*?)Status: 
(.*)(?:unpacked|installed)" % pkg,
-                                        r"Package: %s\n\1Status: \2%s" % (pkg, 
status_tag),
+                        _pkg = re.escape(pkg)
+                        status = re.sub(r"Package: %s\n((?:[^\n]+\n)*?)Status: 
(.*)(?:unpacked|installed)" % _pkg,
+                                        r"Package: %s\n\1Status: \2%s" % 
(_pkg, status_tag),
                                         status)
 
                     tmp_sf.write(status)
-- 
2.33.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#155805): 
https://lists.openembedded.org/g/openembedded-core/message/155805
Mute This Topic: https://lists.openembedded.org/mt/85465297/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to