|
|
Message-ID: <CAC_pWX0rQWikwLqxn76eJKkKdHDB=jvWP7b47Q8BWU1opNpDxg@mail.gmail.com>
Date: Tue, 25 Nov 2025 12:29:08 -0500
From: Arjun Ramesh <arjunr2@...rew.cmu.edu>
To: musl@...ts.openwall.com
Subject: [Patch Request] Name-bound syscalls within musl
Hi everyone,
I am currently working on a research project using musl that uses
name-bound syscalls. Skimming the codebase, nearly all references to
"syscall" invocations within musl use the SYS_* defines. These numbers
differ across ISAs and are susceptible to type-safety
bugs, providing virtually no type-checking on their arguments. Syscalls
bound statically by name will make the codebase much less prone to mistakes
and cleaner, allowing type-checked syscall arguments and also cutting down
on the amount of ISA-specific code surface. Below is an example of the
patch I'm suggesting for a single syscall:
```
diff --git a/src/fcntl/open.c b/src/fcntl/open.c
index 4c3c8275..ff5f7973 100644
--- a/src/fcntl/open.c
+++ b/src/fcntl/open.c
@@ -15,7 +15,7 @@ int open(const char *filename, int flags, ...)
int fd = __sys_open_cp(filename, flags, mode);
if (fd>=0 && (flags & O_CLOEXEC))
- __syscall(SYS_fcntl, fd, F_SETFD, FD_CLOEXEC);
+ __syscall_SYS_fcntl(fd, F_SETFD, FD_CLOEXEC);
return __syscall_ret(fd);
}
```
"__syscall_SYS_fcntl" can be defined with a unified static type signature
across ISAs. Given the highly structured nature of this patch, it could
mostly be accomplished with a simple `sed` command across the entire
project, with no impact on functionality. Would the community be open to a
patch of this nature?
Thanks
Best,
Arjun
Content of type "text/html" skipped
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.