From 5191340c0b3e0b761bf231b41becd661707bbc6b Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Sat, 14 Mar 2026 19:09:50 +0100 Subject: [PATCH] fix(kqueue): another leak on handler error --- src/backend/KQueueDir.zig | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/backend/KQueueDir.zig b/src/backend/KQueueDir.zig index 79b9731..835c8cf 100644 --- a/src/backend/KQueueDir.zig +++ b/src/backend/KQueueDir.zig @@ -232,13 +232,10 @@ fn scan_dir(self: *@This(), allocator: std.mem.Allocator, dir_path: []const u8) for (new_dirs.items) |full_path| try self.handler.change(full_path, EventType.created, .dir); for (to_delete.items) |name| { + defer allocator.free(name); // snapshot key, owned by allocator var path_buf: [std.fs.max_path_bytes]u8 = undefined; - const full_path = std.fmt.bufPrint(&path_buf, "{s}/{s}", .{ dir_path, name }) catch { - allocator.free(name); - continue; - }; + const full_path = std.fmt.bufPrint(&path_buf, "{s}/{s}", .{ dir_path, name }) catch continue; try self.handler.change(full_path, EventType.deleted, .file); - allocator.free(name); // snapshot key, owned by allocator } for (to_create.items) |name| { var path_buf: [std.fs.max_path_bytes]u8 = undefined;