1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 13:17:34 +00:00

Userland: Add LibSystem and funnel all syscalls through it

This achieves two things:

- Programs can now intentionally perform arbitrary syscalls by calling
  syscall(). This allows us to work on things like syscall fuzzing.

- It restricts the ability of userspace to make syscalls to a single
  4KB page of code. In order to call the kernel directly, an attacker
  must now locate this page and call through it.
This commit is contained in:
Andreas Kling 2021-02-05 12:16:30 +01:00
parent 4df3a34bc2
commit e87eac9273
47 changed files with 164 additions and 47 deletions

View file

@ -81,10 +81,10 @@ add_custom_command(
set(SOURCES ${LIBC_SOURCES} ${AK_SOURCES} ${ELF_SOURCES})
serenity_libc_static(LibCStatic c)
target_link_libraries(LibCStatic crt0 ssp)
add_dependencies(LibCStatic LibM)
target_link_libraries(LibCStatic crt0 ssp system)
add_dependencies(LibCStatic LibM LibSystem)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libstdc++")
serenity_libc(LibC c)
target_link_libraries(LibC crt0 ssp)
add_dependencies(LibC LibM)
target_link_libraries(LibC crt0 ssp system)
add_dependencies(LibC LibM LibSystem)