Allow all-zero messages

This commit is contained in:
Wei Tang 2020-04-09 14:26:31 +02:00
parent 9aa768df10
commit 9250ae49ce
1 changed files with 1 additions and 8 deletions

View File

@ -454,10 +454,6 @@ impl Message {
/// Converts a `MESSAGE_SIZE`-byte slice to a message object /// Converts a `MESSAGE_SIZE`-byte slice to a message object
#[inline] #[inline]
pub fn from_slice(data: &[u8]) -> Result<Message, Error> { pub fn from_slice(data: &[u8]) -> Result<Message, Error> {
if data == [0; constants::MESSAGE_SIZE] {
return Err(Error::InvalidMessage);
}
match data.len() { match data.len() {
constants::MESSAGE_SIZE => { constants::MESSAGE_SIZE => {
let mut ret = [0; constants::MESSAGE_SIZE]; let mut ret = [0; constants::MESSAGE_SIZE];
@ -1007,10 +1003,7 @@ mod tests {
Err(InvalidMessage)); Err(InvalidMessage));
assert_eq!(Message::from_slice(&[0; constants::MESSAGE_SIZE + 1]), assert_eq!(Message::from_slice(&[0; constants::MESSAGE_SIZE + 1]),
Err(InvalidMessage)); Err(InvalidMessage));
assert_eq!( assert!(Message::from_slice(&[0; constants::MESSAGE_SIZE]).is_ok());
Message::from_slice(&[0; constants::MESSAGE_SIZE]),
Err(InvalidMessage)
);
assert!(Message::from_slice(&[1; constants::MESSAGE_SIZE]).is_ok()); assert!(Message::from_slice(&[1; constants::MESSAGE_SIZE]).is_ok());
} }