From 6ad1a11593f442261fef8e52a410fa460e4eef64 Mon Sep 17 00:00:00 2001 From: Halil Durak Date: Tue, 27 Jan 2026 01:55:54 +0300 Subject: [PATCH] catch pointer overflows in `createLookupKey` Its better to have this; if this is incorrect, its better to get notified. --- src/browser/EventManager.zig | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/browser/EventManager.zig b/src/browser/EventManager.zig index 3e0d4d56..6ec65a9d 100644 --- a/src/browser/EventManager.zig +++ b/src/browser/EventManager.zig @@ -485,8 +485,10 @@ fn findListener(list: *const std.DoublyLinkedList, typ: []const u8, callback: Ca } /// Creates a lookup key to use with `inline_lookup`. -inline fn createLookupKey(event_target: *EventTarget, event_type: Listener.Type) usize { - return @intFromPtr(event_target) >> 3 | (@as(u64, @intFromEnum(event_type)) << 57); +fn createLookupKey(event_target: *EventTarget, event_type: Listener.Type) usize { + const ptr = @intFromPtr(event_target) >> 3; + lp.assert(ptr < (1 << 57), "createLookupKey: pointer overflow", .{ .ptr = ptr }); + return ptr | (@as(u64, @intFromEnum(event_type)) << 57); } /// Returns listener type from `inline_lookup` key.