Commit 5490021ab7

Ryan Liptak <squeek502@hotmail.com>
2024-06-05 03:44:07
Dir.makeOpenPathAccessMaskW: Fix leaking intermediate directory handles
Fixes a regression introduced in 67455c5e70e86dbb7805ff9a415f1b13b14f36da. The `errdefer` cannot run since its not possible for an error to occur, and we don't want it to run on the last handle, so we move the closing back down to where it was before 67455c5e70e86dbb7805ff9a415f1b13b14f36da.
1 parent 332fbb4
Changed files (1)
lib
std
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();
+        }
     }
 }