Handle zero length for strerror_r

This commit is contained in:
Mateusz Mikuła
2019-04-24 17:32:06 +02:00
committed by Mateusz Mikuła
parent 87ba8f8a08
commit 1ebd8a3d72
3 changed files with 9 additions and 2 deletions
+4 -2
View File
@@ -235,8 +235,10 @@ pub unsafe extern "C" fn strerror_r(errnum: c_int, buf: *mut c_char, buflen: siz
let len = strlen(msg);
if len >= buflen {
memcpy(buf as *mut c_void, msg as *const c_void, buflen - 1);
*buf.add(buflen - 1) = 0;
if buflen != 0 {
memcpy(buf as *mut c_void, msg as *const c_void, buflen - 1);
*buf.add(buflen - 1) = 0;
}
return ERANGE as c_int;
}
memcpy(buf as *mut c_void, msg as *const c_void, len + 1);