1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 16:07:45 +00:00
serenity/Userland/Libraries
Daniel Bertalan 87ef2718bc UserspaceEmulator+LibC: Use sys$emuctl() to disable auditing in malloc
It was fragile to use the address of the body of the memory management
functions to disable memory auditing within them. Functions called from
these did not get exempted from the audits, so in some cases
UserspaceEmulator reported bogus heap buffer overflows.

Memory auditing did not work at all on Clang because when querying the
addresses, their offset was taken relative to the base of `.text` which
is not the first segment in the `R/RX/RW(RELRO)/RW(non-RELRO)` layout
produced by LLD.

Similarly to when setting metadata about the allocations, we now use the
`emuctl` system call to selectively suppress auditing when we reach
these functions. This ensures that functions called from `malloc` are
affected too, and no issues occur because of the inconsistency between
Clang and GCC memory layouts.
2021-08-14 18:42:14 +02:00
..
LibArchive LibArchive: Move method implementations away from header 2021-05-17 18:14:05 +01:00
LibAudio LibAudio: Make playing lossy flacs more truthful 2021-08-06 23:50:10 +02:00
LibC UserspaceEmulator+LibC: Use sys$emuctl() to disable auditing in malloc 2021-08-14 18:42:14 +02:00
LibCards LibGfx: Use "try_" prefix for static factory functions 2021-07-21 18:02:15 +02:00
LibChess LibChess: Fix hashing of the chess board 2021-07-30 20:49:18 +02:00
LibCompress LibCompress: Discard GZip NAME & COMMENT optional strings 2021-05-18 08:09:21 +02:00
LibCore LibCore+LibHTTP: Check the status of the socket after EINPROGRESS 2021-08-13 20:30:19 +04:30
LibCoreDump LibCoreDump: Make narrowing uint64_t => FlatPtr conversion explicit 2021-08-08 10:55:36 +02:00
LibCpp Tests: Add regression tests for the LibCpp preprocessor 2021-08-14 12:40:55 +02:00
LibCrypt Everywhere: Add a blank line after copyright header where missing 2021-05-15 00:27:09 +01:00
LibCrypto LibCrypto: Add operator<= and operator>= to SignedBigInteger 2021-07-19 09:11:20 +01:00
LibDebug LibDebug: Store 64-bit numbers in AttributeValue 2021-08-08 10:55:36 +02:00
LibDesktop Userland: Use Core::Process::spawn() instead of posix_spawn() in places 2021-08-06 01:06:42 +02:00
LibDiff AK+Everywhere: Consolidate String::index_of() and String::find() 2021-05-24 11:59:18 +02:00
LibDl Toolchain+Userland: Enable TLS for x86_64 2021-07-04 01:07:28 +02:00
LibELF LibELF+LibTest: Fix incorrect #ifdef 2021-08-12 08:16:07 +02:00
LibFileSystemAccessClient FileSystemAccessServer: Add window title as parameter for opening file 2021-08-07 12:48:22 +02:00
LibGemini AK: Implement String::find_any_of() and StringView::find_any_of() 2021-07-02 21:54:21 +02:00
LibGfx Everywhere: Use tobyase@serenityos.org for my copyright headers 2021-08-09 21:43:05 +02:00
LibGL LibGL: Implement glDrawElements 2021-08-14 12:49:29 +02:00
LibGUI LibGUI: Draw a focus rect over the row when sel. behavior is SelectRows 2021-08-10 21:56:47 +02:00
LibHTTP LibCore+LibHTTP: Check the status of the socket after EINPROGRESS 2021-08-13 20:30:19 +04:30
LibImageDecoderClient Userland: Remove dummy IPC methods 2021-06-24 00:38:58 +02:00
LibIMAP Everywhere: Make use of container version of all_of 2021-08-03 10:46:43 +02:00
LibIPC LibIPC: Pass only message size to decoder 2021-08-11 18:28:59 +02:00
LibJS LibJS/Tests: Remove outdated FIXME comment 2021-08-13 23:59:22 +01:00
LibKeyboard LibKeyboard: Remove an unnecessary #include when building with KERNEL 2021-06-30 11:30:28 +02:00
LibLine LibLine: Correct spelling mistake in variable name 2021-07-21 14:15:24 +02:00
LibM AK: Introduce Math.h 2021-07-19 16:34:21 +04:30
LibMarkdown LibMarkdown: Wrap non-inline code blocks in <pre> 2021-06-09 18:06:54 +01:00
LibPCIDB Everywhere: "file name" => "filename" 2021-04-29 22:16:18 +02:00
LibPDF Everywhere: Use AK/Math.h if applicable 2021-07-19 16:34:21 +04:30
LibProtocol LibProtocol: Use URL class in RequestClient::start_request argument 2021-06-06 16:00:11 +02:00
LibPthread LibPthread+Kernel: Add pthread_kill() and the thread_kill syscall 2021-07-09 15:36:50 +02:00
LibRegex AK+Everywhere: Delete Variant's default constructor 2021-08-13 17:31:39 +04:30
LibSanitizer LibSanitizer+AK: Add float cast overflow handler 2021-08-08 10:55:36 +02:00
LibSQL AK+Everywhere: Delete Variant's default constructor 2021-08-13 17:31:39 +04:30
LibSymbolication LibDebug+Everywhere: Make DebugInfo not own the ELF image 2021-08-06 01:14:03 +02:00
LibSyntax LibWeb+LibSyntax: Implement nested syntax highlighters 2021-06-07 14:45:49 +04:30
LibSystem Kernel+LibSystem: Add a 4th syscall argument 2021-07-25 14:08:50 +02:00
LibTest LibELF+LibTest: Fix incorrect #ifdef 2021-08-12 08:16:07 +02:00
LibTextCodec LibTextCodec: Add Turkish (aka ISO-8859-9, Windows-1254) encoding 2021-06-23 16:32:47 +01:00
LibThreading Revert "LibThreading: Fix BackgroundAction result use-after-free" 2021-07-12 11:29:37 +02:00
LibTLS Everywhere: Replace AK::Singleton => Singleton 2021-08-08 00:03:45 +02:00
LibUnicode LibUnicode: Download and parse DerivedNormalizationProps UCD file 2021-08-11 13:11:01 +02:00
LibUSBDB LibUSBDB: Fix vendor id decoding 2021-06-18 19:41:25 +04:30
LibVideo Userland: Use kmalloc_array() where appropriate 2021-08-08 00:03:45 +02:00
LibVT Userland: Make use of container version of any_of 2021-08-02 00:37:18 +02:00
LibWasm LibWasm: Move some Values and Vector<Value>s instead of copying them 2021-08-12 21:03:53 +02:00
LibWeb LibWeb: Treat multi-value CSS properties as StyleValueList by default 2021-08-14 15:09:19 +02:00
LibWebSocket AK+Everywhere: Disallow constructing Functions from incompatible types 2021-06-06 00:27:30 +04:30
LibX86 LibX86: Stub out Disassembler::next() for x86_64 2021-08-02 17:11:47 +02:00
CMakeLists.txt LibTTF/LibGfx: Remove circular dependency by merging LibTTF into LibGfx 2021-07-29 21:46:25 +01:00