summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2010-03-02 20:11:56 +0000
committerZac Medico <zmedico@gentoo.org>2010-03-02 20:11:56 +0000
commitbf53782ad32ce5b0e4d1c3ddec0ae98fb7a443f5 (patch)
tree0ed05d6366c8f3aea1053b2f3ae57c1a50ef841d
parent5d85a0230c6707d01c511d37adc5db7d067188b2 (diff)
downloadportage-bf53782ad32ce5b0e4d1c3ddec0ae98fb7a443f5.tar.gz
portage-bf53782ad32ce5b0e4d1c3ddec0ae98fb7a443f5.tar.bz2
portage-bf53782ad32ce5b0e4d1c3ddec0ae98fb7a443f5.zip
Bug #303211 - Discard invalid SIZE metadata when using the old binhost
protocol. (trunk r15333) svn path=/main/branches/2.1.7/; revision=15564
-rw-r--r--pym/portage/dbapi/bintree.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/pym/portage/dbapi/bintree.py b/pym/portage/dbapi/bintree.py
index e817e3d03..e07f58a47 100644
--- a/pym/portage/dbapi/bintree.py
+++ b/pym/portage/dbapi/bintree.py
@@ -838,6 +838,17 @@ class binarytree(object):
remote_metadata = self.remotepkgs[mypkg]
for k, v in remote_metadata.items():
remote_metadata[k] = v.strip()
+
+ # Eliminate metadata values with names that digestCheck
+ # uses, since they are not valid when using the old
+ # protocol. Typically this is needed for SIZE metadata
+ # which corresponds to the size of the unpacked files
+ # rather than the binpkg file size, triggering digest
+ # verification failures as reported in bug #303211.
+ remote_metadata.pop('SIZE', None)
+ for k in portage.checksum.hashfunc_map:
+ remote_metadata.pop(k, None)
+
self._remotepkgs[fullpkg] = remote_metadata
#print " -- Injected"
except SystemExit as e: