diff options
author | Justus Winter <justus@sequoia-pgp.org> | 2021-04-07 12:52:12 +0200 |
---|---|---|
committer | Justus Winter <justus@sequoia-pgp.org> | 2021-04-08 12:56:15 +0200 |
commit | 00bf98bd0c7154df668cb1e0baee6e7d8fd8ac25 (patch) | |
tree | f31bd22dc357752fb58ace0aed4a119f3ffc3e88 /openpgp/src/serialize.rs | |
parent | a49be1e7efe20062436e86ca0ded041d83a44372 (diff) |
openpgp: Improving debugging of SerializeInto::serialized_len.
Diffstat (limited to 'openpgp/src/serialize.rs')
-rw-r--r-- | openpgp/src/serialize.rs | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/openpgp/src/serialize.rs b/openpgp/src/serialize.rs index 72e6aad2..a0d57572 100644 --- a/openpgp/src/serialize.rs +++ b/openpgp/src/serialize.rs @@ -528,8 +528,12 @@ fn generic_serialize_into(o: &dyn Marshal, serialized_len: usize, false }; return if short_write { - assert!(buf_len < serialized_len, - "o.serialized_len() underestimated the required space"); + if buf_len >= serialized_len { + let mut b = Vec::new(); + let need_len = o.serialize(&mut b).map(|_| b.len()); + panic!("o.serialized_len() = {} underestimated required \ + space, need {:?}", serialized_len, need_len); + } Err(Error::InvalidArgument( format!("Invalid buffer size, expected {}, got {}", serialized_len, buf_len)).into()) @@ -562,8 +566,12 @@ fn generic_export_into(o: &dyn Marshal, serialized_len: usize, false }; return if short_write { - assert!(buf_len < serialized_len, - "o.serialized_len() underestimated the required space"); + if buf_len >= serialized_len { + let mut b = Vec::new(); + let need_len = o.serialize(&mut b).map(|_| b.len()); + panic!("o.serialized_len() = {} underestimated required \ + space, need {:?}", serialized_len, need_len); + } Err(Error::InvalidArgument( format!("Invalid buffer size, expected {}, got {}", serialized_len, buf_len)).into()) |