Skip to content

Commit 2938698

Browse files
committed
feat(nom5): modify format of array from [...] to [a; b]
1 parent 4101682 commit 2938698

File tree

5 files changed

+12
-10
lines changed

5 files changed

+12
-10
lines changed

src/toxcore/dht/daemon_state.rs

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,14 +142,18 @@ mod tests {
142142
let serialized_vec = DaemonState::serialize_old(&alice);
143143
let serialized_len = serialized_vec.len();
144144
let res = DaemonState::deserialize_old(&alice, &serialized_vec[..serialized_len - 1]).wait();
145-
res.err().unwrap();
145+
let error = res.err().unwrap();
146+
let mut input = vec![2, 1, 2, 3, 4, 4, 210];
147+
input.extend_from_slice(&pk_org.0[..PUBLICKEYBYTES - 1]);
148+
assert_eq!(*error.kind(), DeserializeErrorKind::Deserialize { error: Err::Error((
149+
input, NomErrorKind::Eof)), data: serialized_vec[..serialized_len - 1].to_vec() });
146150

147151
// test with serialized data corrupted
148152
let serialized_vec = [42; 10];
149153
let res = DaemonState::deserialize_old(&alice, &serialized_vec).wait();
150154
let error = res.err().unwrap();
151155
assert_eq!(*error.kind(), DeserializeErrorKind::Deserialize { error: Err::Error((
152-
vec![42, 42, 42, 42, 42, 42, 42, 42, 42, 42], NomErrorKind::Tag)), data: serialized_vec.to_vec() });
156+
vec![42; 10], NomErrorKind::Tag)), data: serialized_vec.to_vec() });
153157

154158
// test with empty close list
155159
alice.close_nodes.write().remove(&pk_org);

src/toxcore/dht/packet/cookie.rs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -234,10 +234,7 @@ mod tests {
234234
let decoded_payload = invalid_encrypted_cookie.get_payload(&symmetric_key);
235235
let error = decoded_payload.err().unwrap();
236236
assert_eq!(*error.kind(), GetPayloadErrorKind::Deserialize {
237-
error: Err::Error((vec![42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
238-
42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
239-
42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42, 42,
240-
42, 42, 42], ErrorKind::Eof)),
237+
error: Err::Error((vec![42; 51], ErrorKind::Eof)),
241238
payload: invalid_payload.to_vec()
242239
});
243240
// Try short incomplete array

src/toxcore/dht/packet/cookie_response.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,7 @@ mod tests {
213213
let decoded_payload = invalid_packet.get_payload(&shared_secret);
214214
let error = decoded_payload.err().unwrap();
215215
assert_eq!(*error.kind(), GetPayloadErrorKind::Deserialize {
216-
error: Err::Error((vec![42, 42, 42], ErrorKind::Eof)),
216+
error: Err::Error((vec![42; 3], ErrorKind::Eof)),
217217
payload: invalid_payload.to_vec()
218218
});
219219
// Try short incomplete array

src/toxcore/onion/packet/onion_announce_response.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,8 @@ impl FromBytes for OnionAnnounceResponsePayload {
139139
announce_status: call!(AnnounceStatus::from_bytes) >>
140140
ping_id_or_pk: call!(sha256::Digest::from_bytes) >>
141141
nodes: many0!(PackedNode::from_bytes) >>
142-
cond!(nodes.len() <= 4, eof!()) >>
142+
_len: verify!(value!(nodes.len()), |len| *len <= 4 as usize) >>
143+
eof!() >>
143144
(OnionAnnounceResponsePayload {
144145
announce_status,
145146
ping_id_or_pk,

src/toxcore/tcp/codec.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/*! Codec implementation for encoding/decoding TCP Packets in terms of tokio-io
22
*/
33

4-
use std::io::{Error as IoError};
4+
use std::io::Error as IoError;
55

66
use crate::toxcore::binary_io::*;
77
use crate::toxcore::tcp::packet::*;
@@ -113,7 +113,7 @@ impl Decoder for Codec {
113113
let (consumed, encrypted_packet) = match EncryptedPacket::from_bytes(buf) {
114114
Err(Err::Incomplete(_)) => return Ok(None),
115115
Err(Err::Error(_)) => return Ok(None),
116-
Err(Err::Failure(_)) => return Ok(None),
116+
Err(Err::Failure(e)) => return Err(DecodeError::DeserializeEncryptedError { error: e.1, buf: buf.to_vec() }.into()),
117117
Ok((i, encrypted_packet)) => {
118118
(buf.offset(i), encrypted_packet)
119119
}

0 commit comments

Comments
 (0)