Commit Graph

609 Commits

Author SHA1 Message Date
Jeremy Soller 9fa3eceaeb Implement getsockaddr for SO_DOMAIN and SO_TYPE 2025-09-19 14:59:47 -06:00
Josh Megnauth c555503a35 Implement readlinkat
Like readlink except capability based. Most of this patch is refactoring
fstatat into a reusable, openat-like private function.
2025-09-18 01:27:55 +00:00
Josh Megnauth 28901b1b62 Impl AT_SYMLINK_NOFOLLOW and AT_EMPTY_PATH
AT_SYMLINK_NOFOLLOW acts on the symlink itself rather than following it.

AT_EMPTY_PATH acts on the directory if path is empty.

Currently, this is implemented in fstatat itself but the code is general
enough to be refactored once we get the other *at functions. It could
likely just live in openat itself.
2025-09-15 06:12:10 +00:00
4lDO2 e0f44e5ff5 Correct chdir comment. 2025-09-11 13:40:11 +02:00
Ibuki Omatsu b14aae168f Add getens and expose it to libredox 2025-09-09 07:35:19 -06:00
Josh Megnauth 55c2e5b8ea Fix renaming broken symbolic link
Closes: #212

The fix is simply to not follow links when opening a file to be renamed.
O_NOFOLLOW, a non-POSIX extension, does exactly that while not needing
renameat or openat.
2025-09-07 07:44:10 -04:00
Josh Megnauth c899feb774 Implement fstatat
Linux's variant uses the syscall as intended. Redox's variant uses fpath
to build a path to pass to fstat from the file descriptor plus the file
name. Unlike the syscall, this isn't atomic so the liminal space between
fpath/getcwd and fstat is subject to TOCTOU.

Beyond fstatat, I moved the stat test to its correct location and added
an assert since the output of the test is unchecked.

I also added AT_FDCWD which seems to be -100 across Unixes. The other
AT_* constants are unimplemented for now.
2025-08-27 08:21:41 -04:00
Ron Williams b7589a63c5 Fixes to improve signals for openposixtestsuite 2025-08-04 07:37:14 -06:00
Jeremy Soller 1694cd3a4d fix redox stat st_blocks 2025-08-01 12:44:10 -06:00
Jeremy Soller 6dd10a1f11 Fix connect on redox 2025-08-01 10:33:55 -06:00
Ibuki.O b86f8a36fa feat: Add redox_get_socket_token_v0 as a symbol for libredox. 2025-07-19 13:31:44 +09:00
Ibuki Omatsu d44010170f feat: Integrate UDS bind and connect operation with RedoxFS and switch get_proc_credentials to a capability-based approach. 2025-07-18 08:57:49 -06:00
Jeremy Soller 46c2f99919 Merge branch 'unix-domain-socket' into 'master'
feat: Implement Unix Domain Socket and related features.

See merge request redox-os/relibc!662
2025-07-17 22:48:37 -06:00
Ibuki Omatsu 206239f9a2 feat: Implement Unix Domain Socket and related features. 2025-07-17 22:48:37 -06:00
Ron Williams 770dc71816 Fix CI, Add signal.h constants 2025-07-11 20:28:45 -06:00
Jeremy Soller b68ff56115 Revert "Merge branch 'use-redox-path-in-cwd' into 'master'"
This reverts merge request !669
2025-07-11 06:28:48 -06:00
Josh Megnauth db6097733c Use redox_path in canonicalize_using_cwd_internal
`redox_path` handles most of the logic anyway.
2025-07-09 22:30:51 -04:00
bjorn3 585cd80002 Expose sys_call through libredox
This makes it significantly easier to use outside of crates that already
depend on redox-rt, making it actually useful to many schemes.
2025-06-30 20:17:26 +02:00
James Matlik 19de978799 Fix issue with rename to relative destination 2025-06-12 08:56:21 -04:00
Jeremy Soller 1e48b13948 Debug recvmsg on redox 2025-05-04 09:32:10 -06:00
Jeremy Soller 275b92ee92 Make setitimer return enosys instead of panic on redox 2025-05-04 08:32:25 -06:00
Jeremy Soller 0f3f6f3c15 Use flink to implement link on redox 2025-05-03 12:18:45 -06:00
Ron Williams c779c1d941 Mark setitimer as unimplemented, obsolete 2025-04-21 23:29:35 -07:00
Jeremy Soller 4dd8cbe15e Merge branch 'no_suid' into 'master'
Remove the code to use escalated for suid binaries

See merge request redox-os/relibc!653
2025-04-21 12:21:21 +00:00
bjorn3 f51690c3a8 Remove the code to use escalated for suid binaries 2025-04-21 11:07:01 +02:00
4lDO2 32c5e89c82 Return ID of new session in setsid. 2025-04-20 17:10:51 +02:00
Jacob Lorentzon a9fd150c91 Merge branch 'redox_cur_procfd_v0' into 'master'
Add redox_cur_procfd_v0 method to get own proc_fd

See merge request redox-os/relibc!651
2025-04-20 14:22:13 +00:00
bjorn3 4755d1ae24 Add redox_cur_procfd_v0 method to get own proc_fd 2025-04-20 16:19:45 +02:00
4lDO2 a30f13ee9b Fix setuid. 2025-04-20 14:00:35 +02:00
4lDO2 5dfc76dda8 Fix signal handlers after EINTR nanosleep. 2025-04-19 19:27:03 +02:00
4lDO2 d0335b30de Use redox_rt::protocol for sig numbers. 2025-04-19 19:27:02 +02:00
4lDO2 05481b36a6 Fix IPC size on i686. 2025-04-19 19:27:01 +02:00
4lDO2 dc2988968e Use SignalThread call and fix fork sighandler sync with procmgr. 2025-04-19 19:26:59 +02:00
4lDO2 b30ccb61fe Enforce procmgr errors, fix attrs path. 2025-04-19 19:26:59 +02:00
4lDO2 ac7e0755f1 Fix SyncSigPctl invocation. 2025-04-19 19:26:59 +02:00
4lDO2 a4dc232a33 Impl getres[ug]id C function. 2025-04-19 19:26:59 +02:00
4lDO2 8bd510ff59 Simplify [res][ug]id getters and setters. 2025-04-19 19:26:59 +02:00
4lDO2 747d11062b Rename KillTarget -> ProcKillTarget. 2025-04-19 19:26:58 +02:00
4lDO2 88848c25fe Add (backend todo) proc calls for kill+sigq. 2025-04-19 19:26:58 +02:00
4lDO2 f4a64cfbc3 Add setresguid. 2025-04-19 19:26:58 +02:00
4lDO2 48df8f5bba Add unstable interface for getting current thread fd. 2025-04-19 19:26:58 +02:00
4lDO2 9566a00ad1 WIP: waitpid and exit IPC calls. 2025-04-19 19:26:58 +02:00
4lDO2 bd68da3df9 Fix relibc exec thisproc usage. 2025-04-19 19:26:58 +02:00
4lDO2 ad5efd0f11 Reach init fork 2025-04-19 19:26:57 +02:00
4lDO2 26399569de Reach init w/proc manager. 2025-04-19 19:26:57 +02:00
4lDO2 b851422214 WIP: use proc manager in non-init fork. 2025-04-19 19:26:57 +02:00
4lDO2 91e58e8568 WIP: dynamic and static proc info 2025-04-19 19:26:57 +02:00
4lDO2 422a32690d Replace removed syscalls with redox-rt stubs. 2025-04-19 19:26:57 +02:00
4lDO2 d68f5d8d3d Make redox itimer relibc stub rather than kernel stub. 2025-04-13 18:18:05 +02:00
bjorn3 ea4c41686c Rustfmt 2025-04-12 22:15:05 +02:00