commit: 62f35411d92d487339549a6ee1353ad3026c6579
Author: Mike Gilbert <floppym <AT> gentoo <DOT> org>
AuthorDate: Sun Sep 18 15:01:31 2022 +0000
Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org>
CommitDate: Sun Sep 18 17:30:07 2022 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=62f35411
Revert changes to portage.checksum._apply_hash_filter
The modified code may discard the file size from the output, which is
never desired.
Also, it calls remove on the object being iterated over, which is
problematic.
Reverts: 18e5a8170c69aecd10f162918de571d85055ae81
Reported-by: Marek BehĂșn <kabel <AT> kernel.org>
Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org>
lib/portage/checksum.py | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/lib/portage/checksum.py b/lib/portage/checksum.py
index 03a963a3e..85cc36af3 100644
--- a/lib/portage/checksum.py
+++ b/lib/portage/checksum.py
@@ -442,10 +442,10 @@ def _apply_hash_filter(digests, hash_filter):
"""
verifiable_hash_types = set(digests).intersection(hashfunc_keys)
+ verifiable_hash_types.discard("size")
modified = False
if len(verifiable_hash_types) > 1:
- verifiable_hash_types.discard("size")
- for k in verifiable_hash_types:
+ for k in list(verifiable_hash_types):
if not hash_filter(k):
modified = True
verifiable_hash_types.remove(k)
@@ -453,7 +453,11 @@ def _apply_hash_filter(digests, hash_filter):
break
if modified:
- digests = {k: v for k, v in digests.items() if k in
verifiable_hash_types}
+ digests = {
+ k: v
+ for k, v in digests.items()
+ if k == "size" or k in verifiable_hash_types
+ }
return digests