parent
16cec54c20
commit
edc4b10da2
@ -0,0 +1,54 @@
|
||||
From af5a9154bde9eef7475d1f622bae8851333ad336 Mon Sep 17 00:00:00 2001
|
||||
From: "Benjamin A. Beasley" <code@musicinmybrain.net>
|
||||
Date: Tue, 3 Sep 2024 10:11:29 -0400
|
||||
Subject: [PATCH] Fix bounds math issues in tests revealed by quickcheck v1
|
||||
|
||||
Some tests relied on unsigned arithmetic that could wrap around, and
|
||||
quickcheck 1.0 was able to reveal the problem. All of the issues were in
|
||||
the tests rather than in the implementation.
|
||||
|
||||
Fixes #22. Fixes compatibility with quickcheck v1.
|
||||
---
|
||||
src/lib.rs | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/lib.rs b/src/lib.rs
|
||||
index 7b6d4c0..1746f69 100644
|
||||
--- a/src/lib.rs
|
||||
+++ b/src/lib.rs
|
||||
@@ -339,7 +339,7 @@ mod test {
|
||||
#[test]
|
||||
fn check_array_ref_5() {
|
||||
fn f(data: Vec<u8>, offset: usize) -> quickcheck::TestResult {
|
||||
- if data.len() < offset + 5 {
|
||||
+ if data.len() < 5 || data.len() - 5 < offset {
|
||||
return quickcheck::TestResult::discard();
|
||||
}
|
||||
let out = array_ref!(data, offset, 5);
|
||||
@@ -351,7 +351,7 @@ mod test {
|
||||
#[test]
|
||||
fn check_array_ref_out_of_bounds_5() {
|
||||
fn f(data: Vec<u8>, offset: usize) -> quickcheck::TestResult {
|
||||
- if data.len() >= offset + 5 {
|
||||
+ if data.len() >= 5 && data.len() - 5 >= offset {
|
||||
return quickcheck::TestResult::discard();
|
||||
}
|
||||
quickcheck::TestResult::must_fail(move || {
|
||||
@@ -364,7 +364,7 @@ mod test {
|
||||
#[test]
|
||||
fn check_array_mut_ref_7() {
|
||||
fn f(mut data: Vec<u8>, offset: usize) -> quickcheck::TestResult {
|
||||
- if data.len() < offset + 7 {
|
||||
+ if data.len() < 7 || data.len() - 7 < offset {
|
||||
return quickcheck::TestResult::discard();
|
||||
}
|
||||
let out = array_mut_ref!(data, offset, 7);
|
||||
@@ -377,7 +377,7 @@ mod test {
|
||||
#[test]
|
||||
fn check_array_mut_ref_out_of_bounds_32() {
|
||||
fn f(mut data: Vec<u8>, offset: usize) -> quickcheck::TestResult {
|
||||
- if data.len() >= offset + 32 {
|
||||
+ if data.len() >= 32 && data.len() - 32 >= offset {
|
||||
return quickcheck::TestResult::discard();
|
||||
}
|
||||
quickcheck::TestResult::must_fail(move || {
|
@ -0,0 +1,8 @@
|
||||
--- arrayref-0.3.8/Cargo.toml 1970-01-01T00:00:01+00:00
|
||||
+++ arrayref-0.3.8/Cargo.toml 2024-09-03T14:21:24.860504+00:00
|
||||
@@ -20,4 +20,4 @@
|
||||
repository = "https://github.com/droundy/arrayref"
|
||||
|
||||
[dev-dependencies.quickcheck]
|
||||
-version = "0.6"
|
||||
+version = "1.0"
|
Loading…
Reference in new issue