ensure internal memcpy does not copy past src or dest len

This commit is contained in:
auronandace
2025-12-24 12:42:28 +00:00
parent 4e744c3f55
commit 16f1f71acb
+9 -1
View File
@@ -30,7 +30,15 @@ pub unsafe extern "C" fn memccpy(
) -> *mut c_void {
let to = unsafe { memchr(s2, c, n) };
let dist = if to.is_null() {
n
let dest_len = unsafe { strlen(s1 as *const i8) };
let src_len = unsafe { strlen(s2 as *const i8) };
if n < dest_len && n < src_len {
n
} else if dest_len < src_len {
dest_len
} else {
src_len
}
} else {
((to as usize) - (s2 as usize)) + 1
};