diff options
author | Yuki Okushi <huyuumi.dev@gmail.com> | 2020-03-17 01:46:31 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-03-17 01:46:31 +0900 |
commit | 598939dd5ecb9364b89c5eb14be08f7ffd6ea847 (patch) | |
tree | c0f9e8c5f1d43dbc79a08cff38485e902d1a891d | |
parent | d6159ebccec638ec14df5751663d0b71e87b3418 (diff) | |
parent | 6ffc752f7c938a23df165900c198568fac0c8d61 (diff) | |
download | rust-libc-598939dd5ecb9364b89c5eb14be08f7ffd6ea847.tar.gz |
Merge pull request #1653 from ArniDagur/shadow_reenterant
Add reenterant shadow.h functions
-rw-r--r-- | src/unix/linux_like/linux/gnu/mod.rs | 20 | ||||
-rw-r--r-- | src/unix/linux_like/linux/mod.rs | 12 |
2 files changed, 31 insertions, 1 deletions
diff --git a/src/unix/linux_like/linux/gnu/mod.rs b/src/unix/linux_like/linux/gnu/mod.rs index 21f303ed53..02645fdd14 100644 --- a/src/unix/linux_like/linux/gnu/mod.rs +++ b/src/unix/linux_like/linux/gnu/mod.rs @@ -1087,6 +1087,26 @@ cfg_if! { pub const PTHREAD_MUTEX_ADAPTIVE_NP: ::c_int = 3; extern "C" { + pub fn fgetspent_r( + fp: *mut ::FILE, + spbuf: *mut ::spwd, + buf: *mut ::c_char, + buflen: ::size_t, + spbufp: *mut *mut ::spwd, + ) -> ::c_int; + pub fn sgetspent_r( + s: *const ::c_char, + spbuf: *mut ::spwd, + buf: *mut ::c_char, + buflen: ::size_t, + spbufp: *mut *mut ::spwd, + ) -> ::c_int; + pub fn getspent_r( + spbuf: *mut ::spwd, + buf: *mut ::c_char, + buflen: ::size_t, + spbufp: *mut *mut ::spwd, + ) -> ::c_int; pub fn qsort_r( base: *mut ::c_void, num: ::size_t, diff --git a/src/unix/linux_like/linux/mod.rs b/src/unix/linux_like/linux/mod.rs index 0d7b511539..eb068d337e 100644 --- a/src/unix/linux_like/linux/mod.rs +++ b/src/unix/linux_like/linux/mod.rs @@ -2587,7 +2587,17 @@ extern "C" { pub fn endspent(); pub fn getspent() -> *mut spwd; - pub fn getspnam(__name: *const ::c_char) -> *mut spwd; + pub fn getspnam(name: *const ::c_char) -> *mut spwd; + // Only `getspnam_r` is implemented for musl, out of all of the reenterant + // functions from `shadow.h`. + // https://git.musl-libc.org/cgit/musl/tree/include/shadow.h + pub fn getspnam_r( + name: *const ::c_char, + spbuf: *mut spwd, + buf: *mut ::c_char, + buflen: ::size_t, + spbufp: *mut *mut spwd, + ) -> ::c_int; pub fn shm_open( name: *const c_char, |