From 7be1e85c6d367ca18da1958e1a6435748ab0706f Mon Sep 17 00:00:00 2001 From: Jarred SUmner Date: Thu, 29 Dec 2022 21:46:15 -0800 Subject: Fix OOB when deinit'ing dir walker --- src/walker_skippable.zig | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/walker_skippable.zig b/src/walker_skippable.zig index 53eff3325..489a46d0b 100644 --- a/src/walker_skippable.zig +++ b/src/walker_skippable.zig @@ -108,12 +108,15 @@ pub fn next(self: *Walker) !?WalkerEntry { } pub fn deinit(self: *Walker) void { - for (self.stack.items[1..]) |*item| { - if (self.stack.items.len != 0) { - item.iter.dir.close(); + if (self.stack.items.len > 0) { + for (self.stack.items[1..]) |*item| { + if (self.stack.items.len != 0) { + item.iter.dir.close(); + } } + self.stack.deinit(); } - self.stack.deinit(); + self.name_buffer.allocator.free(self.skip_all); self.name_buffer.deinit(); } -- cgit v1.2.3