summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <justus@sequoia-pgp.org>2021-02-12 14:56:24 +0100
committerJustus Winter <justus@sequoia-pgp.org>2021-02-12 17:06:15 +0100
commit24109b2a125f6e49cbf4595b8d836437a0457fc3 (patch)
treed6829ba51ab60d1ad21cdbe825ebfaf58585c92b
parenta62b53c42d0b909521b77ca24e540d4b84bc87d6 (diff)
openpgp: Keep track of the prefix, not just the prefix length.
-rw-r--r--openpgp/src/armor.rs12
1 files changed, 6 insertions, 6 deletions
diff --git a/openpgp/src/armor.rs b/openpgp/src/armor.rs
index 0409162d..487ffef3 100644
--- a/openpgp/src/armor.rs
+++ b/openpgp/src/armor.rs
@@ -488,7 +488,7 @@ struct IoReader<'a> {
initialized: bool,
headers: Vec<(String, String)>,
finalized: bool,
- prefix_len: usize,
+ prefix: Vec<u8>,
prefix_remaining: usize,
}
assert_send_and_sync!(IoReader<'_>);
@@ -627,7 +627,7 @@ impl<'a> Reader<'a> {
headers: Vec::new(),
initialized: false,
finalized: false,
- prefix_len: 0,
+ prefix: Vec::with_capacity(0),
prefix_remaining: 0,
};
@@ -849,8 +849,8 @@ impl<'a> IoReader<'a> {
if found_blob {
// Skip the rest of the initialization.
self.initialized = true;
- self.prefix_len = prefix.len();
self.prefix_remaining = prefix.len();
+ self.prefix = prefix;
return Ok(());
}
@@ -985,8 +985,8 @@ impl<'a> IoReader<'a> {
self.source.consume(n);
self.initialized = true;
- self.prefix_len = prefix.len();
self.prefix_remaining = prefix.len();
+ self.prefix = prefix;
Ok(())
}
}
@@ -1060,7 +1060,7 @@ impl<'a> IoReader<'a> {
// buffer partial chunks.
cmp::max(THRESHOLD, buf.len() / 3 * 4),
self.prefix_remaining,
- self.prefix_len);
+ self.prefix.len());
// We shouldn't have any partial chunks.
assert_eq!(base64data.len() % 4, 0);
@@ -1145,7 +1145,7 @@ impl<'a> IoReader<'a> {
self.source.consume(consumed);
// Skip any expected prefix
- self.source.data_consume_hard(self.prefix_len)?;
+ self.source.data_consume_hard(self.prefix.len())?;
// Look for a footer.
let consumed = {
// Skip whitespace.