File tree Expand file tree Collapse file tree 4 files changed +35
-30
lines changed Expand file tree Collapse file tree 4 files changed +35
-30
lines changed Original file line number Diff line number Diff line change 1- use libc:: { c_int , gid_t} ;
1+ use libc:: gid_t;
22
33#[ no_mangle]
44unsafe extern "C" fn getegid ( ) -> gid_t {
55 libc ! ( libc:: getegid( ) ) ;
66 rustix:: process:: getegid ( ) . as_raw ( )
77}
8-
9- #[ no_mangle]
10- unsafe extern "C" fn setegid ( _gid : gid_t ) -> c_int {
11- libc ! ( libc:: setegid( _gid) ) ;
12- todo ! ( "setegid" )
13- }
Original file line number Diff line number Diff line change 1- use libc:: { c_int , uid_t} ;
1+ use libc:: uid_t;
22
33#[ no_mangle]
44unsafe extern "C" fn geteuid ( ) -> uid_t {
55 libc ! ( libc:: geteuid( ) ) ;
66 rustix:: process:: geteuid ( ) . as_raw ( )
77}
8-
9- #[ no_mangle]
10- unsafe extern "C" fn seteuid ( _uid : uid_t ) -> c_int {
11- libc ! ( libc:: seteuid( _uid) ) ;
12- todo ! ( "seteuid" )
13- }
Original file line number Diff line number Diff line change @@ -11,6 +11,7 @@ mod long_double;
1111mod long_double_complex;
1212mod pthread_cancel;
1313mod pthread_spin;
14+ mod set_id;
1415mod sysv;
1516mod wchar;
1617
@@ -838,14 +839,6 @@ unsafe extern "C" fn __isoc99_vsscanf() {
838839 todo ! ( "__isoc99_vsscanf" )
839840}
840841#[ no_mangle]
841- unsafe extern "C" fn setregid ( ) {
842- todo ! ( "setregid" )
843- }
844- #[ no_mangle]
845- unsafe extern "C" fn setreuid ( ) {
846- todo ! ( "setreuid" )
847- }
848- #[ no_mangle]
849842unsafe extern "C" fn times ( ) {
850843 todo ! ( "times" )
851844}
@@ -926,14 +919,6 @@ unsafe extern "C" fn setns() {
926919 todo ! ( "setns" )
927920}
928921#[ no_mangle]
929- unsafe extern "C" fn setresgid ( ) {
930- todo ! ( "setresgid" )
931- }
932- #[ no_mangle]
933- unsafe extern "C" fn setresuid ( ) {
934- todo ! ( "setresuid" )
935- }
936- #[ no_mangle]
937922unsafe extern "C" fn mq_close ( ) {
938923 todo ! ( "mq_close" )
939924}
Original file line number Diff line number Diff line change 1+ //! Linux's system calls for these functions only set the IDs for one thread,
2+ //! and we need to set the IDs for all threads in a process.
3+ //!
4+ //! This would typically entail taking a lock that prevents thread creation,
5+ //! setting the IDs for each thread manually by sending signals to them and
6+ //! having signal handlers that perform the set operation, waitinig for all
7+ //! the handlers to run, and then releasing the lock.
8+
9+ #[ no_mangle]
10+ unsafe extern "C" fn seteuid ( ) {
11+ todo ! ( "seteuid" )
12+ }
13+ #[ no_mangle]
14+ unsafe extern "C" fn setegid ( ) {
15+ todo ! ( "setegid" )
16+ }
17+ #[ no_mangle]
18+ unsafe extern "C" fn setreuid ( ) {
19+ todo ! ( "setreuid" )
20+ }
21+ #[ no_mangle]
22+ unsafe extern "C" fn setregid ( ) {
23+ todo ! ( "setregid" )
24+ }
25+ #[ no_mangle]
26+ unsafe extern "C" fn setresuid ( ) {
27+ todo ! ( "setresuid" )
28+ }
29+ #[ no_mangle]
30+ unsafe extern "C" fn setresgid ( ) {
31+ todo ! ( "setresgid" )
32+ }
You can’t perform that action at this time.
0 commit comments