Fix panic in fread

This commit is contained in:
Jeremy Soller
2018-12-29 10:02:36 -07:00
parent 0aaa7264db
commit e7896f6c48
+6 -2
View File
@@ -422,11 +422,15 @@ pub unsafe extern "C" fn fputs(s: *const c_char, stream: *mut FILE) -> c_int {
pub unsafe extern "C" fn fread(
ptr: *mut c_void,
size: size_t,
count: size_t,
nitems: size_t,
stream: *mut FILE,
) -> size_t {
if size == 0 || count == 0 {
return 0;
}
let mut stream = (*stream).lock();
let buf = slice::from_raw_parts_mut(ptr as *mut u8, size as usize * count as usize);
let buf = slice::from_raw_parts_mut(ptr as *mut u8, size as usize * nitems as usize);
let mut read = 0;
while read < buf.len() {
match stream.read(&mut buf[read..]) {