summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-11-14UserspaceEmulator: Track malloc ChunkedBlocks for faster auditingAndreas Kling
Instead of doing an O(n) scan over all the mallocations whenever we're doing a read/write audit, UE now keeps track of ChunkedBlocks and their chunks. Both the block lookup and the chunk lookup is O(1). We know what ChunkedBlocks look like via mallocdefs.h from LibC. Note that the old linear scan is still in use for big mallocations, but the vast majority of mallocations are chunked, so this helps a lot. This makes malloc auditing significantly faster! :^)
2020-11-14LibC: Move some of malloc's data structures into mallocdefs.hAndreas Kling
This allows UE to see what the heap metadata looks like.
2020-11-14Kernel: Fix mouse lag when VMWareBackdoor absolute mode is enabledTom
We won't be receiving full PS/2 mouse packets when the VMWareBackdoor absolute mouse mode is enabled. So, read just one byte every time and retrieve the latest mouse packet from VMWareBackdoor immediately. Fixes #4086
2020-11-14Revert "Kernel: Keep reading from i8042 until the buffer is empty"Tom
This reverts commit 467f6c74a4d2bfd46fdd04c7ef3ff35ab88e1384.
2020-11-14Kernel: Keep reading from i8042 until the buffer is emptyAndreas Kling
Otherwise we might not drain the mouse buffer until the next IRQ.
2020-11-14AK: Mark SimpleIterator::operator*() as ALWAYS_INLINEAndreas Kling
This gives the compiler enough information to optimize index validation when using range-for to iterate over a Vector, drastically reducing the cost of such loops.
2020-11-14Meta: Fix IRC notification scriptBen Wiederhake
What a silly mistake. How did I manage to do that?
2020-11-14Userland: chroot: Add `--userspec`/`-u` flag to set uid/gid for chrootBrendan Coles
2020-11-14UserspaceEmulator: Implement FISUB_RM32Andreas Kling
2020-11-14UserspaceEmulator: Remove some FPU debug spamAndreas Kling
2020-11-14UserspaceEmulator: Implement FABSAndreas Kling
2020-11-14UserspaceEmulator: Improve FCOMI/FCOMIP/FUCOMI/FUCOMIPAndreas Kling
These instructions now operate on the specified FPU stack entry instead of always using ST(0) and ST(1). FUCOMI and FUCOMIP also handle NaN values slightly better.
2020-11-14UserspaceEmulator: Honor the read/write/execute bits in mmap regionsAndreas Kling
UE will now correctly crash when accessing an mmap memory region in some way it's not supposed to be accessed.
2020-11-14Meta: Use SerenityBot for IRC notificationsBen Wiederhake
This avoids "useless" join/part notifications.
2020-11-14Meta: Let toolchain patches invalidate toolchain cacheBen Wiederhake
Fixes #4072.
2020-11-14Meta: Fix broken IRC notification for drafts and skipsBen Wiederhake
2020-11-14UserspaceEmulator: Print an emulator backtrace on OOB accessAndreas Kling
This makes OOB accesses much more actionable than just having UE itself asserting with no hint about what the emulated program was doing.
2020-11-14LibC: strtok_r() should not go past the last tokenAndreas Kling
When we hit the last token, make the saved pointer point to the null terminator instead of to the next token. This ensures that the next call to strtok_r() returns null as expected. Found by running GCC in UE. :^)
2020-11-14LibC: Fix OOB access in strerror() with invalid inputAndreas Kling
Calling strerror() with a negative number should not access below the error string array. Found by running GCC in UE. :^)
2020-11-14TmpFS: Set the root inode's timestamp to the current timeAndreas Kling
cc @bcoles :^)
2020-11-14LibTLS: Add support for AEAD cipher suitesAnotherTest
And integrate AES-GCM.
2020-11-14LibCrypto: Implement GCM modeAnotherTest
2020-11-14test-crypto: Silence the "creating bytebuffer..." debugAnotherTest
2020-11-14LibCrypto: Move out 'VerificationConsistency' into its own header fileAnotherTest
2020-11-14LibCrypto: Templatise CTR<T> on the increment functionAnotherTest
2020-11-14LibWeb: Use standardized encoding names, add encoding attribute to documentLuke
2020-11-14LibTextCodec: Add a function to convert encodings to standardized namesLuke
https://encoding.spec.whatwg.org/#names-and-labels
2020-11-14LibGUI: Make FileIconProvider aware of all supported image formatsLinus Groh
By using Gfx::Bitmap::is_path_a_supported_image_format() we can automatically provide the image icon for all supported image formats, without keeping a second list of image file extensions.
2020-11-14LibGUI: Add more extensions to FileIconProviderLinus Groh
This adds the following: - cplusplus: .cxx, .cc, .c++ - header: .hpp, .hxx, .hh, .h++ - javascript: .mjs
2020-11-14LibGfx: Make Bitmap path handling case insensitiveLinus Groh
Bitmap::is_path_a_supported_image_format() and Bitmap::load_from_file() now check the file extension with CaseSensitivity::CaseInsensitive. This fixes a couple of inconsistencies, for example would FileSystemModel::icon_for() recognize image files uppercase extensions but couldn't create thumbnails for them (any attempt to create a bitmap from such files would fail).
2020-11-14AK: Fix StringUtils::contains() case insensitive searchLinus Groh
It would incorrectly return false if needle was at the end the string.
2020-11-14HackStudio: Use GUI::FileIconProvider::icon_for_path() for Locator iconsLinus Groh
No need to duplicate file icon association logic as well as artificially limiting the number of recognized file types.
2020-11-14HackStudio: Make Locator search case insensitiveLinus Groh
Typing "make" should find "Makefile", for example. :^)
2020-11-14Lagom: Use -fsanitize=fuzzer, not -fsanitize=fuzzer-no-linkNico Weber
Fuzzers don't link for me without this change.
2020-11-14Lagom: Add a gemini fuzzerNico Weber
Didn't find anything interesting, but might as well check it in.
2020-11-14Lagom: Augment fuzzing readme a bitNico Weber
Recommend using asan, don't set the c compiler (c++ compiler is sufficient), mention how to run on several cores, and how to get less output.
2020-11-14Userland: Add test-gfx-font for Gfx::Font testsBrendan Coles
2020-11-13LibGfx: Fail PPM decode if there's not enough pixel data in the inputAndreas Kling
Fixes #3820.
2020-11-13LibGfx: Add missing stream error handling in GIF frame descriptor parseAndreas Kling
If we try to read a sentinel byte but the stream is fresh out of data, we have to take care of the stream error and bail out right away, or we'll hit an assertion when exiting the function soon after. Fixes #3486.
2020-11-13LibGfx: Refuse to decode PNG images with geometry outside i32 boundsAndreas Kling
Just fail the decode immediately when encountering an IHDR chunk with width and/or height larger than the maximum i32 value. Fixes #3818. Fixes #3819.
2020-11-13UserspaceEmulator: When auditing accesses, show nearest mallocationAndreas Kling
Instead of always showing the preceding mallocation, prefer showing the following one *if* it's closer to the audited address. This makes it easier to find bugs where the access is just before an allocation instead of just after it.
2020-11-13LibC: Adjust malloc size classes to ensure 8-byte aligned pointersAndreas Kling
The pointers returned by malloc should always be 8-byte aligned on x86. We were not consistent about this, as some ChunkedBlock size classes were not divisible by 8. This fixes some OOB reads found by running GCC in UE.
2020-11-13UserspaceEmulator: Support FCMOVBE and FCMOVNBEAndreas Kling
2020-11-13UserspaceEmulator: Emulate the sys$get_stack_bounds() syscallAndreas Kling
2020-11-13UserspaceEmulator: Initial FPU support (by @nico)Andreas Kling
Start fleshing out basic support for floating-point instructions in the UserspaceEmulator CPU. This is all work done by @nico for #3576. I'm just merging it all in this patch since it's a decent foundation to continue working on. :^)
2020-11-13AK: Fix inverted condition in unsigned LEB128 decodeAndreas Kling
2020-11-13LibWeb: Add default values of URL and content type in documentLuke
As per this line in the specification: Unless stated otherwise, a document’s encoding is the utf-8 encoding, content type is "application/xml", URL is "about:blank", origin is an opaque origin, type is "xml", and its mode is "no-quirks". https://dom.spec.whatwg.org/#document
2020-11-13LibWeb: Add initial implementation of document.implementationLuke
2020-11-13LibWeb: Add contentType attribute to DocumentLuke
2020-11-13Meta: Nicer IRC notificationsBen Wiederhake