We already store these glPixelStorei() parameters in
m_unpacking_parameters/m_packing_parameters, but didn't do anything
with them.
Setting these parameters is equivalent to offsetting the input/output
texture data pointer by a constant offset.
Fixes the issue of the test using braced parameter expansion, which is
not part of Shell's syntax, and correctaly sets up the test directory,
ensuring its path is fully resolved to avoid issues on macOS.
Proxy textures don't have any image data. They can be used to determine
if a given texture configuration is supported by the implementation.
To support proxy textures in gl_tex_image_2d, we need to tweak the error
handling, since proxy textures don't report an error for unsupported
dimensions:
GL spec 1.5, 3.8.11 Texture State and Proxy State:
"When TexImage3D is executed with target specified as PROXY_TEXTURE_3D,
the three-dimensional proxy state values of the specified
level-of-detail are recomputed and updated. If the image array would
not be supported by TexImage3D called with target set to TEXTURE_3D,
no error is generated, but the proxy width, height, depth,
border width, and component resolutions are set to zero."
(The same also applies to TexImage2D.)
GL spec 1.5, 3.8.11 Texture State and Proxy State:
"Each initial texture array is null (zero width, height, and depth,
zero border width, internal format 1, with the compressed flag
set to FALSE, a zero compressed size, and zero-sized components)."
GL spec 1.5, 3.8.1 Texture Image Specification:
"An image with zero width, height, or depth indicates the null texture."
Previously, retrieving the texture size for an uninitialized texture
would have resulted in a crash. Since Texture2D initially has a null
device image and device images are not allowed to be 0x0 (GPU::Image
VERIFYs that), represent 0x0 textures by having a null device image.
Per POSIX:
If either the old or new argument names a symbolic link, rename() shall
operate on the symbolic link itself, and shall not resolve the last
component of the argument.
Per POSIX:
If path names a symbolic link, mkdir() shall fail and set errno to
[EEXIST].
The test needs to be done in a subfolder of /tmp, I suppose that it
comes from the custom branch for mounted folders in
`resolve_path_without_veil`. Otherwise, the behavior is quite different
and seems to involve other bugs too.
Note that the current implementation of lgamma doesn't work for negative
values of x. But given that Stirling's approximation is also only
defined for positive values of x, this patch don't change anything in
that regard.
encode() returns without writing anything when emLen < tLen + 11, but
verify() went on to compare the input against that untouched buffer.
For an empty signature both sides are empty, so LibTLS accepted an
empty RSA signature on certificates and on ServerKeyExchange.
With this change, when we're done with our test the SIGCHLD handler is
set back to the default one. This fixes an issue when running the test
under LSan with libsanitizers. LSan works by forking and then using
ptrace on the parent to inspect its address space, when this child exits
it was triggering our handler and caused a crash. Restoring the default
handler solves the issue. For some reason, this only happens with GCC's
implementation of LSan while this works fine with Clang's.
verify() copied two 32-byte halves out of the signature and read 32
bytes of the public key without looking at the size of either span, so
a shorter buffer was read past its end. SSHServer, LibTLS and LibWeb
all pass buffers whose size is chosen by the peer.
The IDL definition in the spec does not have a public constructor, and
our test that relies on it was failing to run in other browsers.
(cherry picked from commit 814fa0682a82c4d7416408e25691703cb9138d0a)
This change imports the WPT html/dom/aria-attribute-reflection.html test
into being an in-tree test — and deletes the related existing test
from https://github.com/LadybirdBrowser/ladybird/commit/a924e8747a4
previously “ported” from the WPT with changes to run under our (non-WPT)
in-tree test harness.
(cherry picked from commit 58b07bc531857a006959f015165b73480d90de10)
We use the CSSRule::Type enum for identifying the type of a CSSRule, but
the spec requires that only some of these types are exposed via the
`type` attribute. For the rest, we're required to return 0, so let's do
so. :^)
(cherry picked from commit 51fc87bc1b051c45d8a93ea5098e7b8ce10551ad)
This is not a complete parse, as it doesn't validate or take into
account the parsed syntax.
Enough to get us a few more WPT tests though :)
(cherry picked from commit a4c72f50c0aa0d54819d6deb3676a18e2f16a42a)
Previously, callers were passing the size in bytes, but the method
expected bits. This caused a crash in LibCrypto when verifying the key
size later on.
Also make the naming of local variables and parameters a little more
clear between the different AES algorithms :^)
(cherry picked from commit 0db171c36eeb443314f0a5e60d683417f559e83e)
This only affect the output if the current locale has alternative
representations. Given that on Serenity we only use the POSIX/C locale,
and it doesn't have any alternative representations, these modifiers are
basically useless.
"If the alternative format or specification does not exist for the
current locale [...], the behavior shall be as if the unmodified
conversion specification were used."
Will be used by an upcoming JS prototype
(cherry picked from commit 41e14e3fc3aab8417b8687df7e4242982e97ba23)
Co-authored-by: Jamie Mansfield <[email protected]>