aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-19 16:14:56 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2023-01-19 16:14:56 -0800
commit495c70053ff6823073e9bb5938f1fb41215a6919 (patch)
tree94ad920b4f297753a944695174ef2ade18bdadc3 /src
parent9bcd4952ce3b3051d1f432810d0a9f8a17e3db92 (diff)
downloadbun-495c70053ff6823073e9bb5938f1fb41215a6919.tar.gz
bun-495c70053ff6823073e9bb5938f1fb41215a6919.tar.zst
bun-495c70053ff6823073e9bb5938f1fb41215a6919.zip
Add a debug safety check for UAF in AST nodes
Diffstat (limited to 'src')
-rw-r--r--src/js_ast.zig5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/js_ast.zig b/src/js_ast.zig
index fbeddcbb8..11ff6e82f 100644
--- a/src/js_ast.zig
+++ b/src/js_ast.zig
@@ -120,6 +120,11 @@ pub fn NewBaseStore(comptime Union: anytype, comptime count: usize) type {
pub fn reset() void {
const blocks = _self.overflow.slice();
for (blocks) |b| {
+ if (comptime Environment.isDebug) {
+ // ensure we crash if we use a freed value
+ var bytes = std.mem.asBytes(&b.items);
+ @memset(bytes, undefined, bytes.len);
+ }
b.used = 0;
}
_self.overflow.used = 0;