set writer result or error before calling close_handle

This commit is contained in:
Jack Robison 2019-04-23 14:25:47 -04:00
parent 0f3f38d8a3
commit dab49e812f
No known key found for this signature in database
GPG key ID: DF25C68FE0239BB2

View file

@ -44,16 +44,15 @@ class HashBlobWriter:
self._hashsum.update(data) self._hashsum.update(data)
self.len_so_far += len(data) self.len_so_far += len(data)
if self.len_so_far > expected_length: if self.len_so_far > expected_length:
self.close_handle()
self.finished.set_exception(InvalidDataError( self.finished.set_exception(InvalidDataError(
f'Length so far is greater than the expected length. {self.len_so_far} to {expected_length}' f'Length so far is greater than the expected length. {self.len_so_far} to {expected_length}'
)) ))
self.close_handle()
return return
self.buffer.write(data) self.buffer.write(data)
if self.len_so_far == expected_length: if self.len_so_far == expected_length:
blob_hash = self.calculate_blob_hash() blob_hash = self.calculate_blob_hash()
if blob_hash != self.expected_blob_hash: if blob_hash != self.expected_blob_hash:
self.close_handle()
self.finished.set_exception(InvalidBlobHashError( self.finished.set_exception(InvalidBlobHashError(
f"blob hash is {blob_hash} vs expected {self.expected_blob_hash}" f"blob hash is {blob_hash} vs expected {self.expected_blob_hash}"
)) ))