summaryrefslogtreecommitdiff
path: root/Remote/Helper/Special.hs
diff options
context:
space:
mode:
authorGravatar Joey Hess <joeyh@joeyh.name>2016-04-27 12:54:43 -0400
committerGravatar Joey Hess <joeyh@joeyh.name>2016-04-27 12:54:43 -0400
commitd34a125d5a20bec416ff28d32648b9119677f3c7 (patch)
tree2dffa4196fc4e179ad1d0d86d4976eedafd70fb9 /Remote/Helper/Special.hs
parent0328c7d3c46344be3570f5813aa8a2c5e57f89c3 (diff)
Fix bug that prevented resuming of uploads to encrypted special remotes that used chunking. This bug could also expose the names of keys to such remotes.
This is a low-severity security hole.
Diffstat (limited to 'Remote/Helper/Special.hs')
-rw-r--r--Remote/Helper/Special.hs3
1 files changed, 2 insertions, 1 deletions
diff --git a/Remote/Helper/Special.hs b/Remote/Helper/Special.hs
index fdadc97b9..f9b5deae4 100644
--- a/Remote/Helper/Special.hs
+++ b/Remote/Helper/Special.hs
@@ -189,11 +189,12 @@ specialRemote' cfg c preparestorer prepareretriever prepareremover preparecheckp
go Nothing = return False
go' storer (Just checker) = sendAnnex k rollback $ \src ->
displayprogress p k $ \p' ->
- storeChunks (uuid baser) chunkconfig k src p'
+ storeChunks (uuid baser) chunkconfig enck k src p'
(storechunk enc storer)
checker
go' _ Nothing = return False
rollback = void $ removeKey encr k
+ enck = maybe id snd enc
storechunk Nothing storer k content p = storer k content p
storechunk (Just (cipher, enck)) storer k content p = do