[git commit] old_e2fsprogs/blkid: close the fd after we are done with it

Denys Vlasenko vda.linux at googlemail.com
Mon Nov 28 17:57:04 UTC 2011


commit: http://git.busybox.net/busybox/commit/?id=901365fcffbc318395d24a05b6951288562da6af
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Some people have HUGE /dev/*...

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 e2fsprogs/old_e2fsprogs/blkid/probe.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/e2fsprogs/old_e2fsprogs/blkid/probe.c b/e2fsprogs/old_e2fsprogs/blkid/probe.c
index 77bfc73..651193b 100644
--- a/e2fsprogs/old_e2fsprogs/blkid/probe.c
+++ b/e2fsprogs/old_e2fsprogs/blkid/probe.c
@@ -575,8 +575,12 @@ blkid_dev blkid_verify(blkid_cache cache, blkid_dev dev)
 	    printf("need to revalidate %s (time since last check %lu)\n",
 		   dev->bid_name, diff));
 
-	if (((fd = open(dev->bid_name, O_RDONLY)) < 0) ||
-	    (fstat(fd, &st) < 0)) {
+	fd = open(dev->bid_name, O_RDONLY);
+	if (fd < 0
+	 || fstat(fd, &st) < 0
+	) {
+		if (fd >= 0)
+			close(fd);
 		if (errno == ENXIO || errno == ENODEV || errno == ENOENT) {
 			blkid_free_dev(dev);
 			return NULL;
@@ -653,6 +657,7 @@ try_again:
 
 	if (!dev->bid_type) {
 		blkid_free_dev(dev);
+		close(fd);
 		return NULL;
 	}
 


More information about the busybox-cvs mailing list