From: david-sarah Date: Fri, 7 Oct 2011 03:24:44 +0000 (-0700) Subject: Fix some potential bugs (in non-test code) exposed by check-miscaptures.py. refs... X-Git-Url: https://git.rkrishnan.org/copyable.html?a=commitdiff_plain;h=a31a701e42d4608338dd070999d9b1f95aa36808;p=tahoe-lafs%2Ftahoe-lafs.git Fix some potential bugs (in non-test code) exposed by check-miscaptures.py. refs #1556 --- diff --git a/src/allmydata/mutable/filenode.py b/src/allmydata/mutable/filenode.py index cafe20fe..612e7c77 100644 --- a/src/allmydata/mutable/filenode.py +++ b/src/allmydata/mutable/filenode.py @@ -1136,14 +1136,14 @@ class MutableFileVersion: start_segments = {} # shnum -> start segment end_segments = {} # shnum -> end segment blockhashes = {} # shnum -> blockhash tree - for (shnum, data) in update_data.iteritems(): - data = [d[1] for d in data if d[0] == self._version] + for (shnum, original_data) in update_data.iteritems(): + data = [d[1] for d in original_data if d[0] == self._version] # Every data entry in our list should now be share shnum for # a particular version of the mutable file, so all of the # entries should be identical. datum = data[0] - assert filter(lambda x: x != datum, data) == [] + assert [x for x in data if x != datum] == [] blockhashes[shnum] = datum[0] start_segments[shnum] = datum[1] diff --git a/src/allmydata/mutable/servermap.py b/src/allmydata/mutable/servermap.py index 18907141..1f28cdd2 100644 --- a/src/allmydata/mutable/servermap.py +++ b/src/allmydata/mutable/servermap.py @@ -680,7 +680,7 @@ class ServermapUpdater: d.addCallback(lambda results, shnum=shnum, peerid=peerid: self._try_to_set_pubkey(results, peerid, shnum, lp)) # XXX: Make self._pubkey_query_failed? - d.addErrback(lambda error, shnum=shnum, peerid=peerid: + d.addErrback(lambda error, shnum=shnum, peerid=peerid, data=data: self._got_corrupt_share(error, shnum, peerid, data, lp)) else: # we already have the public key. @@ -695,7 +695,7 @@ class ServermapUpdater: # bytes of the share on the storage server, so we # shouldn't need to fetch anything at this step. d2 = reader.get_verinfo() - d2.addErrback(lambda error, shnum=shnum, peerid=peerid: + d2.addErrback(lambda error, shnum=shnum, peerid=peerid, data=data: self._got_corrupt_share(error, shnum, peerid, data, lp)) # - Next, we need the signature. For an SDMF share, it is # likely that we fetched this when doing our initial fetch @@ -703,7 +703,7 @@ class ServermapUpdater: # the end of the share, so unless the file is quite small, # we'll need to do a remote fetch to get it. d3 = reader.get_signature() - d3.addErrback(lambda error, shnum=shnum, peerid=peerid: + d3.addErrback(lambda error, shnum=shnum, peerid=peerid, data=data: self._got_corrupt_share(error, shnum, peerid, data, lp)) # Once we have all three of these responses, we can move on # to validating the signature @@ -714,7 +714,7 @@ class ServermapUpdater: d4 = reader.get_encprivkey() d4.addCallback(lambda results, shnum=shnum, peerid=peerid: self._try_to_validate_privkey(results, peerid, shnum, lp)) - d4.addErrback(lambda error, shnum=shnum, peerid=peerid: + d4.addErrback(lambda error, shnum=shnum, peerid=peerid, data=data: self._privkey_query_failed(error, shnum, data, lp)) else: d4 = defer.succeed(None)