1
0
mirror of https://git.yoctoproject.org/poky synced 2026-06-01 13:09:50 +00:00

sstatesig: Avoid resetting taskhash within siggen for locked sigs

Since get_unihash uses taskhash as a key internally, changing it means
different bebahour when locked sigs are active verses not active. Under
corner cases this leads to a signature mismatch.

Avoid this by by adding a wrapper for the place its externally exposed
and then not changing the internals.

(From OE-Core rev: 23b7484d326cf7fac013384598d7745a042eaa75)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2020-01-02 16:37:58 +00:00
parent 737c5b27bb
commit 76af397213
+5 -1
View File
@@ -193,7 +193,6 @@ class SignatureGeneratorOEBasicHashMixIn(object):
self._internal = True
unihash = self.get_unihash(tid)
self._internal = False
self.taskhash[tid] = h_locked
#bb.warn("Using %s %s %s" % (recipename, task, h))
if h != h_locked and h_locked != unihash:
@@ -206,6 +205,11 @@ class SignatureGeneratorOEBasicHashMixIn(object):
#bb.warn("%s %s %s" % (recipename, task, h))
return h
def get_stampfile_hash(self, tid):
if tid in self.lockedhashes and self.lockedhashes[tid]:
return self.lockedhashes[tid]
return super().get_stampfile_hash(tid)
def get_unihash(self, tid):
if tid in self.lockedhashes and self.lockedhashes[tid] and not self._internal:
return self.lockedhashes[tid]