diff options
author | Matthias Beyer <mail@beyermatthias.de> | 2020-02-21 19:17:07 +0100 |
---|---|---|
committer | Matthias Beyer <mail@beyermatthias.de> | 2020-02-21 19:17:07 +0100 |
commit | 90884a91680deddbde9c58071e3807e03ab478df (patch) | |
tree | 5a5c1ad4e0e62fa84e6949e759b38bf4dbf1a1a6 | |
parent | 6397b678e2496e4299674f1fa12faff7258062f0 (diff) |
Ensure FLE is dropped before returning id
Signed-off-by: Matthias Beyer <mail@beyermatthias.de>
-rw-r--r-- | bin/domain/imag-mail/src/lib.rs | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/bin/domain/imag-mail/src/lib.rs b/bin/domain/imag-mail/src/lib.rs index 564be610..03a1a1b6 100644 --- a/bin/domain/imag-mail/src/lib.rs +++ b/bin/domain/imag-mail/src/lib.rs @@ -204,12 +204,16 @@ fn list(rt: &Runtime) -> Result<()> { let iter = if find_root { let iter = iter.and_then_ok(|fle| { trace!("Loading: {}", fle.get_location()); - fle.load(conn)? + let id = fle + .load(conn)? .ok_or_else(|| format_err!("Cannot load mail: {}", fle.get_location()))? .parsed()? .root_parent(&mailstore)? .ok_or_else(|| format_err!("Failed to find root parent: {}", fle.get_location())) - .map(|p| p.get_id().clone()) + .map(|p| p.get_id().clone()); + + drop(fle); + id }); Box::new(iter) as Box<dyn Iterator<Item = Result<String>>> |