[v2] cache: correctly handle file names containing colons

Message ID 20220508113312.tfvicc4aqgopn33j@pengutronix.de
State Accepted, archived
Commit a70a7376a8708bde07959deb5d5842d7f84ee5f8
Headers show
Series [v2] cache: correctly handle file names containing colons | expand

Commit Message

Roland Hieber May 8, 2022, 11:33 a.m. UTC
File names containing colons cause split() to return a list with more
than two elements, which will lead to a stack trace ending in:

    ValueError: too many values to unpack (expected 2)

Split only once at the last colon, thereby making sure that only two
elements are returned.

Signed-off-by: Roland Hieber <rhi@pengutronix.de>
---
* v1 -> v2: add Signed-off-by

 lib/bb/cache.py | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Patch

diff --git a/lib/bb/cache.py b/lib/bb/cache.py
index fcb15796ccbe..92e9a3ced7df 100644
--- a/lib/bb/cache.py
+++ b/lib/bb/cache.py
@@ -619,7 +619,7 @@  class Cache(NoCache):
                 for f in flist:
                     if not f:
                         continue
-                    f, exist = f.split(":")
+                    f, exist = f.rsplit(":", 1)
                     if (exist == "True" and not os.path.exists(f)) or (exist == "False" and os.path.exists(f)):
                         self.logger.debug2("%s's file checksum list file %s changed",
                                              fn, f)