summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatthias Beyer <mail@beyermatthias.de>2020-02-21 19:17:07 +0100
committerMatthias Beyer <mail@beyermatthias.de>2020-02-21 19:17:07 +0100
commit90884a91680deddbde9c58071e3807e03ab478df (patch)
tree5a5c1ad4e0e62fa84e6949e759b38bf4dbf1a1a6
parent6397b678e2496e4299674f1fa12faff7258062f0 (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.rs8
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>>>