Age | Commit message (Collapse) | Author |
|
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! :^)
|
|
This allows UE to see what the heap metadata looks like.
|
|
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
|
|
This reverts commit 467f6c74a4d2bfd46fdd04c7ef3ff35ab88e1384.
|
|
Otherwise we might not drain the mouse buffer until the next IRQ.
|
|
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.
|
|
What a silly mistake. How did I manage to do that?
|
|
|
|
|
|
|
|
|
|
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.
|
|
UE will now correctly crash when accessing an mmap memory region in
some way it's not supposed to be accessed.
|
|
This avoids "useless" join/part notifications.
|
|
Fixes #4072.
|
|
|
|
This makes OOB accesses much more actionable than just having UE itself
asserting with no hint about what the emulated program was doing.
|
|
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. :^)
|
|
Calling strerror() with a negative number should not access below the
error string array.
Found by running GCC in UE. :^)
|
|
cc @bcoles :^)
|
|
And integrate AES-GCM.
|
|
|
|
|
|
|
|
|
|
|
|
https://encoding.spec.whatwg.org/#names-and-labels
|
|
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.
|
|
This adds the following:
- cplusplus: .cxx, .cc, .c++
- header: .hpp, .hxx, .hh, .h++
- javascript: .mjs
|
|
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).
|
|
It would incorrectly return false if needle was at the end the string.
|
|
No need to duplicate file icon association logic as well as artificially
limiting the number of recognized file types.
|
|
Typing "make" should find "Makefile", for example. :^)
|
|
Fuzzers don't link for me without this change.
|
|
Didn't find anything interesting, but might as well check it in.
|
|
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.
|
|
|
|
Fixes #3820.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
|
|
|
|
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. :^)
|
|
|
|
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
|
|
|
|
|
|
|