From 148e64752e7ffdd899ec4658067a4b72376f87fa Mon Sep 17 00:00:00 2001 From: nilfit <nils.fitinghoff@gmail.com> Date: Wed, 28 Feb 2018 18:50:58 +0100 Subject: [PATCH] change + to wrapping_add This gets the tests to pass again. Without this, execution stops at an overflow. --- tests/symbolic/manticore.rs | 18 +++++++++--------- tests/symbolic/ptr_offset.rs | 2 +- tests/symbolic/write_mem.rs | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/tests/symbolic/manticore.rs b/tests/symbolic/manticore.rs index f432d04..26f0ca2 100644 --- a/tests/symbolic/manticore.rs +++ b/tests/symbolic/manticore.rs @@ -13,7 +13,7 @@ fn check_char_0(mut ch: u8) -> Result<(), ()> { fn check_char_1(mut ch: u8) -> Result<(), ()> { ch ^= 107; - ch += 67; + ch = ch.wrapping_add(67); if ch == 105 { Ok(()) @@ -23,7 +23,7 @@ fn check_char_1(mut ch: u8) -> Result<(), ()> { } fn check_char_2(mut ch: u8) -> Result<(), ()> { - ch += 61; + ch = ch.wrapping_add(61); ch *= 2; if ch == 252 { @@ -66,7 +66,7 @@ fn check_char_5(mut ch: u8) -> Result<(), ()> { } fn check_char_6(mut ch: u8) -> Result<(), ()> { - ch += 71; + ch = ch.wrapping_add(71); if ch == 138 { Ok(()) @@ -86,8 +86,8 @@ fn check_char_7(mut ch: u8) -> Result<(), ()> { } fn check_char_8(mut ch: u8) -> Result<(), ()> { - ch += 41; - ch += 53; + ch = ch.wrapping_add(41); + ch = ch.wrapping_add(53); if ch == 176 { Ok(()) @@ -98,8 +98,8 @@ fn check_char_8(mut ch: u8) -> Result<(), ()> { fn check_char_9(mut ch: u8) -> Result<(), ()> { ch ^= 61; - ch += 41; - ch += 11; + ch = ch.wrapping_add(41); + ch = ch.wrapping_add(11); if ch == 172 { Ok(()) @@ -110,8 +110,8 @@ fn check_char_9(mut ch: u8) -> Result<(), ()> { fn check_char_10(mut ch: u8) -> Result<(), ()> { ch ^= 47; - ch += 29; - ch += 67; + ch = ch.wrapping_add(29); + ch = ch.wrapping_add(67); if ch == 114 { Ok(()) diff --git a/tests/symbolic/ptr_offset.rs b/tests/symbolic/ptr_offset.rs index 58b7059..c972481 100644 --- a/tests/symbolic/ptr_offset.rs +++ b/tests/symbolic/ptr_offset.rs @@ -11,7 +11,7 @@ fn main() { let d0 = data[0]; // 2 let d1 = data[1]; // 4 - if (d0 + d1) as usize >= v.len() { + if (d0.wrapping_add(d1)) as usize >= v.len() { return; } diff --git a/tests/symbolic/write_mem.rs b/tests/symbolic/write_mem.rs index aa3ac12..9ba005a 100644 --- a/tests/symbolic/write_mem.rs +++ b/tests/symbolic/write_mem.rs @@ -10,11 +10,11 @@ fn main() { // should panic on [ 7, 3, 21, 21 ] if data.len() >= 4 { - let mut v = [0; BUFFER_LENGTH]; - v[0] += data[3]; - v[1] = v[0] + data[2]; + let mut v: [u8; BUFFER_LENGTH] = [0; BUFFER_LENGTH]; + v[0] = v[0].wrapping_add(data[3]); + v[1] = v[0].wrapping_add(data[2]); if v[0] == 21 && v[1] == 42 { - v[0] = data[0] + data[1]; + v[0] = data[0].wrapping_add(data[1]); v[3] = data[0]; if v[3] == 7 && v[0] == 10 { panic!() -- GitLab