ladybird/Libraries
sideshowbarker 9bde8a5c88 LibGfx: Avoid undefined behavior on a BMP with an INT_MIN height
Problem: Decoding a BMP whose height is INT_MIN triggered a UBSan error.
A top-down BMP legitimately uses a negative height — and unlike width,
it’s not rejected, so it can be INT_MIN.

Cause: decode_bmp_pixel_data() took the magnitude of the i32 width and
height with abs(). Negating INT_MIN is undefined behavior.

Fix: Widen to i64 before taking the absolute value — so the magnitude of
INT_MIN is representable. The resulting out-of-range dimension is still
rejected by Bitmap::create — so only the undefined behavior changes.

Fixes: https://github.com/LadybirdBrowser/ladybird/issues/9994
2026-06-15 09:44:27 +02:00
..
LibCompress LibCompress: Remove PackBitsDecoder 2026-06-12 22:37:49 +02:00
LibCore LibCore: Own addrinfo results without OwnPtr 2026-06-13 22:49:15 +02:00
LibCrypto LibCrypto: Restore cached tag when a failed ASN1 read is rolled back 2026-06-09 08:02:44 +01:00
LibDatabase Meta: Move most dependency checks to check_for_dependencies.cmake 2026-04-20 16:41:29 -06:00
LibDevTools LibDevTools: Allow editing Web Storage 2026-06-11 16:08:33 +01:00
LibDiff CMake: Rename serenity_* helper functions/macros to ladybird_* 2025-07-03 23:19:41 +02:00
LibDNS LibWeb: Use direct references to main event loops 2026-06-05 09:18:39 +02:00
LibFileSystem LibFileSystem: Preserve copy flags when recursing into directories 2026-04-13 12:00:52 +02:00
LibGC Meta: Enable exit-time destructor warnings for libraries 2026-06-04 19:20:49 +02:00
LibGfx LibGfx: Avoid undefined behavior on a BMP with an INT_MIN height 2026-06-15 09:44:27 +02:00
LibHTTP LibHTTP: Expose cookie date parser 2026-06-11 15:03:47 +01:00
LibImageDecoderClient LibImageDecoderClient: Remove sync id fetch from async decode request 2026-02-28 00:04:06 -06:00
LibImageDecoders LibGfx+LibWeb: Remove TIFF image decoding 2026-06-12 22:37:49 +02:00
LibIPC LibIPC: Adopt Mach OOL payloads on receive 2026-06-13 00:27:57 +01:00
LibJS LibJS: Remove unused C++ local variable wrapper 2026-06-15 02:41:57 +02:00
LibMain AK: Expose helpers to invoke Windows runtime config directly in main() 2025-10-29 21:07:52 -06:00
LibMedia LibMedia: Don't display video frames that are late 2026-06-11 21:49:55 +02:00
LibRegex LibURL: Implement URLPattern in Rust 2026-05-28 09:27:41 +02:00
LibRequests LibRequests+RequestServer: Send oversized ws frames via shared memory 2026-05-27 09:52:34 +02:00
LibSandbox LibSandbox: Permit faccessat2, faccessat and fstatfs 2026-06-12 21:44:10 +02:00
LibSync LibSync: Implement ConditionVariable::wait_for(Duration) 2026-05-22 09:30:10 -05:00
LibSyntax LibSyntax+LibJS+LibWebView: Port the syntax highlighter to UTF-8 2026-06-06 18:42:18 +02:00
LibTest LibGC: Defer per-block madvise to a global background worker 2026-05-07 20:09:05 +02:00
LibTextCodec LibJS: Hash encoded source identity in bytecode cache 2026-06-03 14:11:23 +02:00
LibThreading LibThreading: Remove BackgroundAction 2026-06-05 20:00:12 +02:00
LibTLS Meta: Move most dependency checks to check_for_dependencies.cmake 2026-04-20 16:41:29 -06:00
LibUnicode LibUnicode: Remove unused UTF-32 segmenter support 2026-06-06 18:42:18 +02:00
LibURL LibWebView: Add about:history to view, query and mangage browser history 2026-06-10 20:27:36 +02:00
LibWasm LibWasm: Require virtual storage for wasm32 memory 2026-06-10 17:34:16 +02:00
LibWeb LibWeb: Keep child navigable history updates coherent 2026-06-15 01:15:09 +02:00
LibWebSocket LibWebSocket: Time out stalled close handshakes 2026-05-05 19:14:29 +02:00
LibWebView LibWebView: Complete WebDriver same-document traversals 2026-06-14 17:38:44 +02:00
LibXML Meta: Move most dependency checks to check_for_dependencies.cmake 2026-04-20 16:41:29 -06:00
CMakeLists.txt LibGfx: Split image decoders into a separate library 2026-06-10 11:55:48 +02:00
RustAllocator.rs Rust: Set import granularity to Item 2026-05-28 06:52:18 +02:00