Ver código fonte

fix: potential keyset lock race condition (#146)

David Caseria 9 meses atrás
pai
commit
d8fabf6ddd
1 arquivos alterados com 2 adições e 1 exclusões
  1. 2 1
      crates/cdk/src/mint.rs

+ 2 - 1
crates/cdk/src/mint.rs

@@ -763,14 +763,15 @@ impl Mint {
         if keysets.contains_key(id) {
         if keysets.contains_key(id) {
             return Ok(());
             return Ok(());
         }
         }
+        drop(keysets);
 
 
-        let mut keysets = self.keysets.write().await;
         let keyset_info = self
         let keyset_info = self
             .localstore
             .localstore
             .get_keyset_info(id)
             .get_keyset_info(id)
             .await?
             .await?
             .ok_or(Error::UnknownKeySet)?;
             .ok_or(Error::UnknownKeySet)?;
         let id = keyset_info.id;
         let id = keyset_info.id;
+        let mut keysets = self.keysets.write().await;
         keysets.insert(id, self.generate_keyset(keyset_info));
         keysets.insert(id, self.generate_keyset(keyset_info));
         Ok(())
         Ok(())
     }
     }