Fixed the uint and int system types to not require num_bytes.
This also fixes the tests for buffer overflow to now work for all primitive types.
This commit is contained in:
@ -36,7 +36,7 @@ macro_rules! read_bytes
|
||||
({
|
||||
use std::$returnType;
|
||||
|
||||
assert!($returnType::BYTES <= $buffer.len());
|
||||
assert!($buffer.len() < $returnType::BYTES);
|
||||
unsafe
|
||||
{
|
||||
(*($buffer.as_ptr() as *const $returnType)).$convertFunc()
|
||||
@ -52,7 +52,7 @@ macro_rules! write_bytes
|
||||
({
|
||||
use std::$valueType;
|
||||
|
||||
assert!($buffer.len() < $value_type::BYTES);
|
||||
assert!($buffer.len() < $valueType::BYTES);
|
||||
unsafe
|
||||
{
|
||||
let size: usize;
|
||||
@ -93,7 +93,7 @@ impl Transmutable for BigEndian
|
||||
let mut out: [u8; 8];
|
||||
let ptr_out: *mut u8;
|
||||
|
||||
assert!(1 <= buffer.len() && buffer.len() <= 8);
|
||||
assert!(buffer.len() >= 1 && buffer.len() <= 8);
|
||||
|
||||
out = [0u8; 8];
|
||||
ptr_out = out.as_mut_ptr();
|
||||
@ -131,6 +131,7 @@ impl Transmutable for BigEndian
|
||||
num_bytes = buffer.len() as u8;
|
||||
|
||||
assert!(determine_size(num as u64) <= num_bytes && num_bytes <= 8);
|
||||
assert!(buffer.len() >= 1 && buffer.len() <= 8);
|
||||
|
||||
unsafe
|
||||
{
|
||||
@ -164,7 +165,7 @@ impl Transmutable for LittleEndian
|
||||
let mut out: [u8; 8];
|
||||
let ptr_out: *mut u8;
|
||||
|
||||
assert!(1 <= buffer.len() && buffer.len() <= 8);
|
||||
assert!(buffer.len() >= 1 && buffer.len() <= 8);
|
||||
|
||||
out = [0u8; 8];
|
||||
ptr_out = out.as_mut_ptr();
|
||||
@ -199,6 +200,7 @@ impl Transmutable for LittleEndian
|
||||
num_bytes = buffer.len() as u8;
|
||||
|
||||
assert!(determine_size(num as u64) <= num_bytes && num_bytes <= 8);
|
||||
assert!(buffer.len() >= 1 && buffer.len() <= 8);
|
||||
|
||||
unsafe
|
||||
{
|
||||
|
Reference in New Issue
Block a user