ladybird/Libraries/LibGfx
sideshowbarker 9d64cd8c9b LibGfx: Reject the Invalid bitmap format from IPC decoders
Problem: A borked process sending a Gfx::Bitmap (inside BitmapSequence)
or a Gfx::ShareableBitmap over IPC could set BitmapFormat::Invalid as
the format field. The receiving process then aborted while decoding the
message — an IPC-reachable crash.

Cause: The helper that both decoders use for validating the format read
off the wire accepts BitmapFormat::Invalid. The decoders go on to build
a bitmap with that format. But that triggers an assert — because
minimum_pitch only knows the four real pixel formats.

Fix: Drop BitmapFormat::Invalid from is_valid_bitmap_format. It’s an
indicator of an absent/unknown format, never one a real bitmap can have.
And any real bitmap is never encoded with it. So, both BitmapSequence
and ShareableBitmap decode now return a clean decode error for it.
2026-06-19 10:33:36 +02:00
..
Font LibGfx: Cache font-independent shape data in the font shaping cache 2026-06-09 17:35:54 +02:00
ImageFormats LibGfx: Reject a BMP V5 ICC profile offset that points out of bounds 2026-06-15 20:19:33 +09:00
Rust Rust: Set import granularity to Item 2026-05-28 06:52:18 +02:00
AffineTransform.cpp LibGfx: Add CanvasCommandList 2026-06-13 20:41:03 +02:00
AffineTransform.h LibGfx: Add CanvasCommandList 2026-06-13 20:41:03 +02:00
AntiAliasing.h LibGfx+LibWeb: Move display-list corner types to LibGfx 2026-05-12 16:30:26 +02:00
Bitmap.cpp LibGfx: Set maximum bitmap dimensions to 65535 2026-05-05 20:13:43 +02:00
Bitmap.h LibGfx: Reject the Invalid bitmap format from IPC decoders 2026-06-19 10:33:36 +02:00
BitmapExport.cpp LibGfx: Move bitmap export out of ImmutableBitmap 2026-05-05 14:39:17 -05:00
BitmapExport.h LibGfx: Move bitmap export out of ImmutableBitmap 2026-05-05 14:39:17 -05:00
BitmapSequence.cpp LibGfx: Preserve single-frame BitmapSequence backing 2026-05-25 19:46:46 +02:00
BitmapSequence.h LibGfx+LibWeb: Remove unused code from Gfx::Point/Rect/Size 2026-03-31 10:37:23 +02:00
BoundingBox.h LibGfx: Add BoundingBox::has_no_points for none vs zero-area rect 2026-04-15 10:26:53 +01:00
CanvasCommandList.cpp LibWeb+Compositor: Avoid canvas readback for canvas drawImage 2026-06-17 19:07:32 +02:00
CanvasCommandList.h LibWeb+Compositor: Avoid canvas readback for canvas drawImage 2026-06-17 19:07:32 +02:00
CanvasCommandPlayer.cpp LibWeb+Compositor: Avoid canvas readback for canvas drawImage 2026-06-17 19:07:32 +02:00
CanvasCommandPlayer.h LibWeb+Compositor: Avoid canvas readback for canvas drawImage 2026-06-17 19:07:32 +02:00
CMakeLists.txt LibGfx+LibWeb: Store Skia images with display list resources 2026-06-17 19:17:10 +02:00
CMYKBitmap.cpp LibGfx: Use NonnullRefPtr<Bitmap> for frame descriptors 2025-06-25 22:54:48 +12:00
CMYKBitmap.h LibGfx: Use NonnullRefPtr<Bitmap> for frame descriptors 2025-06-25 22:54:48 +12:00
Color.cpp LibGfx: Implement WCAG's contrast ratio in Color 2026-06-09 17:23:26 +02:00
Color.h LibGfx: Implement WCAG's contrast ratio in Color 2026-06-09 17:23:26 +02:00
ColorConversion.cpp LibGfx: Add color space conversions needed for CSS color interpolation 2026-04-16 12:06:10 +02:00
ColorConversion.h LibGfx: Preserve out-of-range components in HSL to sRGB conversion 2026-04-16 12:06:10 +02:00
ColorSpace.cpp LibGfx: Keep ImmutableBitmap source data context-neutral 2026-05-04 20:12:21 +02:00
ColorSpace.h LibGfx: Keep ImmutableBitmap source data context-neutral 2026-05-04 20:12:21 +02:00
CompositingAndBlendingOperator.h LibGfx: Reorder CompositingAndBlendingOperator values 2025-08-06 15:21:03 +02:00
CornerRadii.cpp LibGfx: Add IPC serialization for CornerRadii 2026-05-21 11:45:06 +01:00
CornerRadii.h LibGfx: Add IPC serialization for CornerRadii 2026-05-21 11:45:06 +01:00
Cursor.cpp Everywhere: Avoid large rebuilds when editing (Immutable)Bitmap headers 2025-11-28 18:32:48 +01:00
Cursor.h LibGfx: Add a stringifier for StandardCursor 2025-12-03 12:23:56 +01:00
DecodedImageFrame.cpp LibGfx: Add CanvasCommandList 2026-06-13 20:41:03 +02:00
DecodedImageFrame.h LibGfx: Add CanvasCommandList 2026-06-13 20:41:03 +02:00
Direct3DContext.cpp LibGfx: Add a Direct3D Skia backend 2026-06-15 04:50:29 +02:00
Direct3DContext.h LibGfx: Add a Direct3D Skia backend 2026-06-15 04:50:29 +02:00
Filter.cpp LibGfx: Add IPC serialization for Filter 2026-05-21 11:45:06 +01:00
Filter.h LibGfx: Add IPC serialization for Filter 2026-05-21 11:45:06 +01:00
FilterImpl.h LibWeb: Inline serialized filters in display list commands 2026-05-11 15:49:12 +02:00
FontCascadeList.cpp LibGfx+LibWeb: Only trigger @font-face loads from text shaping 2026-04-25 17:06:28 +02:00
FontCascadeList.h LibGfx: Remove unused FontCascadeList::size() 2026-05-19 20:34:27 +02:00
Forward.h LibGfx: Add CanvasCommandPlayer 2026-06-13 20:41:03 +02:00
FourCC.h LibGfx: Implement comparison operator and hash function for FourCC 2025-11-04 21:44:32 +01:00
GradientInterpolation.h LibGfx+LibWeb: Use Gfx gradient interpolation in display lists 2026-05-11 20:31:33 +02:00
GradientPainting.cpp LibGfx+LibWeb: Delete unused PaintStyle::paint() implementations 2025-08-01 04:39:50 -04:00
Gradients.cpp LibGfx: Add CanvasCommandList 2026-06-13 20:41:03 +02:00
Gradients.h LibGfx: Add CanvasCommandList 2026-06-13 20:41:03 +02:00
InterpolationColorSpace.h LibWeb: Implement the color-interpolation property for SVG gradients 2025-08-17 10:51:05 +02:00
LineStyle.h
Matrix.h AK+LibGfx: Prefer if consteval over is_constant_evaluated 2026-02-22 13:56:12 -05:00
Matrix3x3.h LibGfx+LibMedia+LibWeb: Use new Matrix subscript operator 2025-07-28 09:15:23 +02:00
Matrix4x4.cpp LibGfx: Add IPC serialization for FloatMatrix4x4 2026-05-21 11:45:06 +01:00
Matrix4x4.h LibGfx+LibWeb: Use matrix helpers in TransformationStyleValue::to_matrix 2026-06-12 01:10:24 +02:00
MetalContext.h Everywhere: Run clang-format 2024-12-28 05:39:32 -08:00
MetalContext.mm LibWeb: Allow construction of PaintingSurface directly from IOSurface 2024-12-03 23:35:45 +01:00
MorphologyOperator.h LibWeb+LibGfx: Implement SVGFEMorphologyElement 2025-11-15 16:08:53 +01:00
Orientation.h
Painter.cpp LibGfx+LibWeb: Fix compile errors in clang-cl from recent header cleanup 2025-11-30 08:45:29 -05:00
Painter.h LibGfx: Reduce Painter to the bitmap-compositing interface 2026-06-13 20:41:03 +02:00
PainterSkia.cpp LibGfx: Stop caching Skia images during canvas playback 2026-06-16 00:38:30 +02:00
PainterSkia.h LibGfx: Stop caching Skia images during canvas playback 2026-06-16 00:38:30 +02:00
PaintingSurface.cpp LibGfx+LibWeb+Compositor+WebContent: Commit 2D canvas flushes atomically 2026-06-19 00:01:26 +02:00
PaintingSurface.h LibGfx+LibWeb+Compositor+WebContent: Commit 2D canvas flushes atomically 2026-06-19 00:01:26 +02:00
PaintStyle.cpp LibGfx+LibWeb: Make DecodedImageFrame a value type 2026-05-07 16:08:13 +02:00
PaintStyle.h LibGfx+LibWeb: Make DecodedImageFrame a value type 2026-05-07 16:08:13 +02:00
Palette.cpp LibGfx: Clean up #include directives 2024-11-20 21:13:23 +01:00
Palette.h LibGfx+LibWeb: Preserve text color for selections 2026-06-18 22:43:26 +02:00
Path.cpp LibGfx: Add IPC serialization for Path 2026-05-21 11:45:06 +01:00
Path.h LibGfx+LibWeb: Implement SVGTextPathElement.startOffset 2026-06-04 16:01:56 +02:00
PathSkia.cpp LibGfx+LibWeb: Implement SVGTextPathElement.startOffset 2026-06-04 16:01:56 +02:00
PathSkia.h LibGfx+LibWeb: Implement SVGTextPathElement.startOffset 2026-06-04 16:01:56 +02:00
Point.cpp
Point.h LibGfx+LibWeb: Remove unused code from Gfx::Point/Rect/Size 2026-03-31 10:37:23 +02:00
Quad.h LibGfx: Implement even-odd method for Quad::contains() and add tests 2024-12-15 23:27:42 +01:00
Rect.cpp LibGfx: Add CanvasCommandList 2026-06-13 20:41:03 +02:00
Rect.h LibGfx: Add CanvasCommandList 2026-06-13 20:41:03 +02:00
ScalingMode.h LibGfx+LibWeb: Use mipmaps for downscaling images 2025-11-12 15:59:01 +01:00
ShapeFeature.cpp LibGfx: Add IPC serialization for ShapeFeature 2026-05-21 11:45:06 +01:00
ShapeFeature.h LibGfx: Add IPC serialization for ShapeFeature 2026-05-21 11:45:06 +01:00
ShareableBitmap.cpp Everywhere: Avoid large rebuilds when editing (Immutable)Bitmap headers 2025-11-28 18:32:48 +01:00
ShareableBitmap.h Everywhere: Avoid large rebuilds when editing (Immutable)Bitmap headers 2025-11-28 18:32:48 +01:00
SharedImage.cpp LibGfx+LibWeb: Add Linux dmabuf backing stores to SharedImage 2026-04-14 21:49:08 +02:00
SharedImage.h LibGfx+LibWeb: Add Linux dmabuf backing stores to SharedImage 2026-04-14 21:49:08 +02:00
SharedImageBuffer.cpp LibGfx: Preserve imported Linux DMABUF handles 2026-06-12 21:45:22 +02:00
SharedImageBuffer.h LibGfx: Preserve imported Linux DMABUF handles 2026-06-12 21:45:22 +02:00
Size.cpp
Size.h LibGfx+LibWeb: Remove unused code from Gfx::Point/Rect/Size 2026-03-31 10:37:23 +02:00
SkiaBackendContext.cpp LibGfx: Add a Direct3D Skia backend 2026-06-15 04:50:29 +02:00
SkiaBackendContext.h LibGfx: Add a Direct3D Skia backend 2026-06-15 04:50:29 +02:00
SkiaUtils.cpp LibWeb: Inline serialized filters in display list commands 2026-05-11 15:49:12 +02:00
SkiaUtils.h LibGfx: Keep ImmutableBitmap source data context-neutral 2026-05-04 20:12:21 +02:00
SystemTheme.cpp Meta: Enable exit-time destructor warnings for libraries 2026-06-04 19:20:49 +02:00
SystemTheme.h LibGfx+LibWeb: Preserve text color for selections 2026-06-18 22:43:26 +02:00
TextAlignment.h
TextAttributes.h
TextLayout.cpp LibGfx: Cache font-independent shape data in the font shaping cache 2026-06-09 17:35:54 +02:00
TextLayout.h LibGfx: Cache font-independent shape data in the font shaping cache 2026-06-09 17:35:54 +02:00
TIFFGenerator.py LibGfx: Don't use varargs/implicit typing in TIFFGenerator 2026-05-13 08:13:51 -05:00
Triangle.cpp
Triangle.h
Vector2.h
Vector3.h
Vector4.h
VectorGraphic.cpp LibGfx: Reduce Painter to the bitmap-compositing interface 2026-06-13 20:41:03 +02:00
VectorGraphic.h LibGfx: Reduce Painter to the bitmap-compositing interface 2026-06-13 20:41:03 +02:00
VectorN.h
VulkanContext.cpp LibGfx: Move VulkanImage into a separate file 2026-04-12 21:18:33 +02:00
VulkanContext.h LibGfx: Move VulkanImage into a separate file 2026-04-12 21:18:33 +02:00
VulkanImage.cpp LibGfx: Preserve imported Linux DMABUF handles 2026-06-12 21:45:22 +02:00
VulkanImage.h LibGfx: Make create_shared_vulkan_image() accept modifiers as a span 2026-04-14 21:49:08 +02:00
WindingRule.h
YUVData.cpp LibGfx+LibMedia: Add IPC serialization for VideoFrame 2026-05-21 11:45:06 +01:00
YUVData.h LibGfx+LibMedia: Add IPC serialization for VideoFrame 2026-05-21 11:45:06 +01:00