Skip to content
Snippets Groups Projects
Commit 1f9f9f7d authored by Tom Almeida's avatar Tom Almeida
Browse files

Made an error in the logic of strcspn and strspn that would cause a bit shift much too large

parent 8028c351
No related branches found
No related tags found
No related merge requests found
......@@ -129,15 +129,15 @@ pub unsafe extern "C" fn strcspn(s1: *const c_char, s2: *const c_char) -> c_ulon
let mut i = 0;
while *s2.offset(i) != 0 {
byteset[(*s2.offset(i) as usize) / (8 * mem::size_of::<usize>())] |=
1 << (*s2.offset(i) as usize % (8 * mem::size_of::<usize>()));
byteset[(*s2.offset(i) as usize) / (8 * byteset.len())] |=
1 << (*s2.offset(i) as usize % (8 * byteset.len()));
i += 1;
}
i = 0; // reset
while *s2.offset(i) != 0 {
if byteset[(*s2.offset(i) as usize) / (8 * mem::size_of::<usize>())]
& 1 << (*s2.offset(i) as usize % (8 * mem::size_of::<usize>())) > 0
if byteset[(*s2.offset(i) as usize) / (8 * byteset.len())]
& 1 << (*s2.offset(i) as usize % (8 * byteset.len())) > 0
{
break;
}
......@@ -281,15 +281,15 @@ pub unsafe extern "C" fn strspn(s1: *const c_char, s2: *const c_char) -> c_ulong
let mut i = 0;
while *s2.offset(i) != 0 {
byteset[(*s2.offset(i) as usize) / (8 * mem::size_of::<usize>())] |=
1 << (*s2.offset(i) as usize % (8 * mem::size_of::<usize>()));
byteset[(*s2.offset(i) as usize) / (8 * byteset.len())] |=
1 << (*s2.offset(i) as usize % (8 * byteset.len()));
i += 1;
}
i = 0; // reset
while *s2.offset(i) != 0 {
if byteset[(*s2.offset(i) as usize) / (8 * mem::size_of::<usize>())]
& 1 << (*s2.offset(i) as usize % (8 * mem::size_of::<usize>())) < 1
if byteset[(*s2.offset(i) as usize) / (8 * byteset.len())]
& 1 << (*s2.offset(i) as usize % (8 * byteset.len())) < 1
{
break;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment