Matheus
5360edb9c7
pipe2: properly clean up vnode references on error
...
Currently, pipe2 both closes the fds and releases references to the pipe
vnode on failure. However, closing the fds already causes the vnode
references to be dropped.
Make pipe2 only release the vnode references when the respective file_t
were not closed.
Found by syzkaller fuzzing.
2026-10-09 02:11:50 -03:00
Matheus
47ce33935f
mknodat: refuse to create symlinks
...
The current mknodat code creates symlinks when requested. Not only does
this break POSIX, it also causes a kernel crash (NULL-deref on
tmpfs_readlink).
Refuse to create symlinks with mknodat.
Found by syzkaller fuzzing.
2026-10-09 02:10:12 -03:00
Matheus
b52882f3f7
syscalls: fix vnode cleanup in some *at syscalls
...
Some *at functions have a cleanup goto which could use an uninitialized
vnode. Fix this by defining the vnodes earlier.
Found by syzkaller fuzzing.
2026-10-09 01:41:48 -03:00
wnstngs
91491d825b
kernel: remove the list_t alias since it's just a typedef for node
2026-10-07 14:08:36 +03:00
wnstngs
9cffe521f3
kernel: use circular lists in various places
2026-10-07 10:32:08 +03:00
Matheus
d214326e8e
print: add nouserprint argument
...
For some usecases, silencing syscall_print()s is ideal. A good example
of that is syzkaller, which uses logs to detect crashes and a badly
timed syscall_print() could interfere.
Add a nouserprint argument which skips printing on syscall_print().
2026-10-06 11:51:00 -03:00
Matheus
e8da0eba6a
statvfs: handle vnodes without a vfs
2026-10-06 11:50:58 -03:00
wnstngs
6780626f29
kernel: cancel interrupted nanosleep timer without remaining pointer
2026-09-23 20:48:29 +03:00
Matheus
3a421a58ad
futex: style
2026-09-15 15:06:16 -03:00
Matheus
58d2e468da
futex: refactor and optimize
2026-09-15 14:57:19 -03:00
Matheus
cdee765643
raw sockets: make creating them a privileged operation
2026-09-14 14:03:39 -03:00
Matheus
3eaca91ff1
vfs: properly sync metadata
2026-09-14 10:11:31 -03:00
Matheus
66b0cb9076
sockets: expose raw sockets to userspace
2026-09-10 17:56:54 -03:00
Matheus
79752fb5e0
sock: pass protocol to sockets
2026-09-10 16:41:21 -03:00
Matheus
afd9d8d3a0
rename: RENAME_NOREPLACE
2026-07-14 16:37:48 -03:00
Matheus
1512b2f3c6
mm: properly implement page locking
2026-07-08 01:37:12 -03:00
Matheus
f46d85fe6d
socket: fix close shutdown properly
2026-07-07 16:49:45 -03:00
Matheus
c05163f191
socket: zero addresses on accept/recv by default
2026-07-07 11:24:44 -03:00
Matheus
bf03d99211
getsockname: remove print
2026-07-07 01:14:49 -03:00
Matheus
7f8fd07f39
sock: sock_copy_addr_to_user
2026-07-05 16:16:05 -03:00
Matheus
239c267ed3
mm: rename vmm api to mm
2026-07-01 15:00:46 -03:00
Matheus
d890eb5fb2
mm: vmmcache -> mm_cache
2026-07-01 12:25:18 -03:00
Matheus
6f8700e678
mm: refactor pmm -> page
2026-07-01 11:56:06 -03:00
Matheus
17334c8533
advlock: general fixes
2026-06-29 11:33:03 -03:00
Matheus
85e12f7e7b
stat: fit AT_EMPTY_PATH
2026-06-28 11:45:17 -03:00
Matheus
b74f36e984
kernel: implement eventfs/eventfd
2026-06-18 01:53:59 -03:00
Matheus
29bae6bda1
fcntl: stub F_GETLK64
2026-06-17 23:11:13 -03:00
Matheus
4cbc9ddfb9
fcntl: bug fixes
2026-06-16 21:03:22 -03:00
Matheus
659b29ef4e
syscalls: implement sysctl and add process listing
2026-06-09 17:47:27 -03:00
Matheus
1a557b7a20
localsocket: implement SOCK_SEQPACKET and a bunch of SCM_RIGHTS fixes
2026-06-04 23:19:01 -03:00
Matheus
59e4cc9fbf
futex: misc fixes
2026-06-04 11:38:49 -03:00
Matheus
2f27f20b1a
poll: fix ppoll signal masking
2026-06-03 20:07:50 -03:00
Matheus
9eb54353a1
stat: fix use of unitialized memory
2026-05-31 21:25:34 -03:00
Matheus
8a94de445f
sendmsg: support MSG_DONTWAIT
2026-05-30 12:45:28 -03:00
Matheus
762552ed5f
syscalls: setpriority
2026-05-28 23:52:07 -03:00
Matheus
d867dc0ad5
waitpid: fix deadlock
2026-05-23 16:57:22 -03:00
Matheus
f1d4ee7e5d
fchownat: fix possible privilege escalation
2026-05-13 23:50:10 -03:00
Matheus
a02c7cb731
open: fix flags bug
2026-05-13 23:50:10 -03:00
Matheus
42cec91cb9
syscalls: misc vulnerability fixes
2026-04-28 21:27:51 -03:00
Matheus
37c3d7f98b
sigreturn: fix use of user pointer in arch_extracontext_copy
2026-04-28 21:14:36 -03:00
Matheus
4af4c3e26e
pread/pwrite: fix vulnerability
2026-04-28 18:52:49 -03:00
iretq
6086393571
abi: move CLOCK_* defines to abi.h
2026-04-25 00:55:44 -03:00
Matheus
7f94276b0b
faccessat: fix use of unitialized variable
2026-04-23 23:07:16 -03:00
Matheus
6678472362
futex: statically define table and mutex
2026-04-23 15:31:05 -03:00
Matheus
71dd6d1125
x86-64: enable smep and smap
2026-04-23 15:29:43 -03:00
Matheus
a15b034aa8
syscalls: implement clock_getres
2026-04-23 12:10:26 -03:00
Matheus
8b41077128
socketpair: support flags
2026-04-23 12:09:55 -03:00
Matheus
3dfb6b5a8c
waitpid: use event instead of busy loop when waiting for threads to die
2026-04-16 22:41:43 -03:00
Matheus
57119aebdc
setitimer: fix invalid pointer access
2026-04-16 18:48:25 -03:00
Matheus
452c95c577
open: fix possible use of unitialized variable
2026-04-16 18:35:39 -03:00