]> code.ossystems Code Review - openembedded-core.git/commitdiff
lib/oe/sstatesig: fix wildcard matching wrong task signature files
authorPaul Eggleton <paul.eggleton@linux.intel.com>
Fri, 3 Nov 2017 03:16:10 +0000 (16:16 +1300)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 5 Nov 2017 22:32:37 +0000 (22:32 +0000)
With a '*' as a wildcard for the signature here we can also match a
portion of the task name with the result that we may match a sigdata
file for the wrong task. Luckily the signature is always the same
length - 32 characters - so we can simply use 32 '?' characters instead.
(A regex would have been another alternative, but the wildcard should be
effective and I felt like a regex would complicate the code more than
this solution).

Fixes [YOCTO #11763].

Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/lib/oe/sstatesig.py

index 5a4093266d43097f174275e12a10795cd4f35280..3a8778eae0170c5f680af2d2d9214ea715c85bd2 100644 (file)
@@ -320,7 +320,7 @@ def find_siginfo(pn, taskname, taskhashlist, d):
 
     if not taskhashlist or (len(filedates) < 2 and not foundall):
         # That didn't work, look in sstate-cache
-        hashes = taskhashlist or ['*']
+        hashes = taskhashlist or ['?' * 32]
         localdata = bb.data.createCopy(d)
         for hashval in hashes:
             localdata.setVar('PACKAGE_ARCH', '*')