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;
2
2
3
3
#[ no_mangle]
4
4
unsafe extern "C" fn getegid ( ) -> gid_t {
5
5
libc ! ( libc:: getegid( ) ) ;
6
6
rustix:: process:: getegid ( ) . as_raw ( )
7
7
}
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;
2
2
3
3
#[ no_mangle]
4
4
unsafe extern "C" fn geteuid ( ) -> uid_t {
5
5
libc ! ( libc:: geteuid( ) ) ;
6
6
rustix:: process:: geteuid ( ) . as_raw ( )
7
7
}
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;
11
11
mod long_double_complex;
12
12
mod pthread_cancel;
13
13
mod pthread_spin;
14
+ mod set_id;
14
15
mod sysv;
15
16
mod wchar;
16
17
@@ -838,14 +839,6 @@ unsafe extern "C" fn __isoc99_vsscanf() {
838
839
todo ! ( "__isoc99_vsscanf" )
839
840
}
840
841
#[ 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]
849
842
unsafe extern "C" fn times ( ) {
850
843
todo ! ( "times" )
851
844
}
@@ -926,14 +919,6 @@ unsafe extern "C" fn setns() {
926
919
todo ! ( "setns" )
927
920
}
928
921
#[ 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]
937
922
unsafe extern "C" fn mq_close ( ) {
938
923
todo ! ( "mq_close" )
939
924
}
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