diff options
Diffstat (limited to 'lib/std')
| -rw-r--r-- | lib/std/fs/Dir.zig | 7 | ||||
| -rw-r--r-- | lib/std/fs/test.zig | 3 |
2 files changed, 7 insertions, 3 deletions
diff --git a/lib/std/fs/Dir.zig b/lib/std/fs/Dir.zig index 192a0d4b3a..16b1cc2aaa 100644 --- a/lib/std/fs/Dir.zig +++ b/lib/std/fs/Dir.zig @@ -1217,10 +1217,13 @@ fn makeOpenPathAccessMaskW(self: Dir, sub_path: []const u8, access_mask: u32, no }, else => |e| return e, }; - // Don't leak the intermediate file handles - errdefer if (result) |*dir| dir.close(); component = it.next() orelse return result.?; + + // Don't leak the intermediate file handles + if (result) |*dir| { + dir.close(); + } } } diff --git a/lib/std/fs/test.zig b/lib/std/fs/test.zig index bd2f4e844c..dda953e5e0 100644 --- a/lib/std/fs/test.zig +++ b/lib/std/fs/test.zig @@ -1161,7 +1161,8 @@ test "makepath existing directories" { defer tmp.cleanup(); try tmp.dir.makeDir("A"); - const tmpA = try tmp.dir.openDir("A", .{}); + var tmpA = try tmp.dir.openDir("A", .{}); + defer tmpA.close(); try tmpA.makeDir("B"); const testPath = "A" ++ fs.path.sep_str ++ "B" ++ fs.path.sep_str ++ "C"; |
