fix: handle invalid pshared in pthread_rwlockattr_setpshared

This commit is contained in:
Marsman
2026-02-10 02:45:24 +00:00
parent 950ec367ca
commit ca84f5b795
+5 -3
View File
@@ -1,6 +1,6 @@
use super::*;
use crate::header::errno::EBUSY;
use crate::header::errno::{EBUSY, EINVAL};
use crate::pthread::Pshared;
@@ -97,9 +97,11 @@ pub unsafe extern "C" fn pthread_rwlockattr_setpshared(
attr: *mut pthread_rwlockattr_t,
pshared: c_int,
) -> c_int {
(unsafe { *attr.cast::<RlctRwlockAttr>() }).pshared =
Pshared::from_raw(pshared).expect("invalid pshared in pthread_rwlockattr_setpshared");
let Some(pshared) = Pshared::from_raw(pshared) else {
return EINVAL;
};
(unsafe { *attr.cast::<RlctRwlockAttr>() }).pshared = pshared;
0
}