aboutsummaryrefslogtreecommitdiff
path: root/e2fsprogs/old_e2fsprogs
diff options
context:
space:
mode:
Diffstat (limited to 'e2fsprogs/old_e2fsprogs')
-rw-r--r--e2fsprogs/old_e2fsprogs/blkid/probe.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/e2fsprogs/old_e2fsprogs/blkid/probe.c b/e2fsprogs/old_e2fsprogs/blkid/probe.c
index 77bfc737d..651193b42 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;
}