From 936b7fe4331f2dbfe63697bd90e29ce23fb828c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Fri, 25 May 2012 01:40:31 +0200 Subject: [PATCH] Fixed a possible FD leak, CID 702009. --- src/add-ons/disk_systems/bfs/BFSAddOn.cpp | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/add-ons/disk_systems/bfs/BFSAddOn.cpp b/src/add-ons/disk_systems/bfs/BFSAddOn.cpp index e0ca448e4e..b33c828a77 100644 --- a/src/add-ons/disk_systems/bfs/BFSAddOn.cpp +++ b/src/add-ons/disk_systems/bfs/BFSAddOn.cpp @@ -230,6 +230,8 @@ BFSPartitionHandle::Repair(bool checkOnly) if (fd < 0) return errno; + FileDescriptorCloser closer(fd); + struct check_control result; memset(&result, 0, sizeof(result)); result.magic = BFS_IOCTL_CHECK_MAGIC; @@ -295,12 +297,8 @@ BFSPartitionHandle::Repair(bool checkOnly) } // stop checking - if (ioctl(fd, BFS_IOCTL_STOP_CHECKING, &result, sizeof(result)) != 0) { - close(fd); + if (ioctl(fd, BFS_IOCTL_STOP_CHECKING, &result, sizeof(result)) != 0) return errno; - } - - close(fd); printf(" %" B_PRIu64 " nodes checked,\n\t%" B_PRIu64 " blocks not " "allocated,\n\t%" B_PRIu64 " blocks already set,\n\t%" B_PRIu64