summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2018-06-29 11:50:34 +0200
committerJustus Winter <justus@sequoia-pgp.org>2018-06-29 11:54:43 +0200
commitac4d003e6162ee8eed31bb48fa9dd79a8197f2ab (patch)
treed68e2ce5657fb0d54db6d25ccd9672d9b9dbc2c1
parent7283fcd8245a20385a7734164999060c27d7e576 (diff)
openpgp: Make iterating over maps of broken packages more robust.
- Avoid out-of-bounds slicing.
-rw-r--r--openpgp/src/parse/parse.rs5
1 files changed, 3 insertions, 2 deletions
diff --git a/openpgp/src/parse/parse.rs b/openpgp/src/parse/parse.rs
index 90865ff1..ebe78830 100644
--- a/openpgp/src/parse/parse.rs
+++ b/openpgp/src/parse/parse.rs
@@ -584,8 +584,9 @@ impl Map {
Box::new(
iter::once(("header", self.header.as_slice()))
.chain(self.entries.iter().map(move |e| {
- (e.field,
- &self.data[e.offset..cmp::min(len, e.offset + e.length)])
+ let start = cmp::min(len, e.offset);
+ let end = cmp::min(len, e.offset + e.length);
+ (e.field, &self.data[start..end])
})))
}
}