From 2858c94e35909c9edcc434acc1b83746143e704e Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Thu, 23 Mar 2006 22:14:54 -0500 Subject: [PATCH] Fix file descriptor leak in blkid library in error paths Signed-off-by: "Theodore Ts'o" --- lib/blkid/ChangeLog | 4 ++++ lib/blkid/probe.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/lib/blkid/ChangeLog b/lib/blkid/ChangeLog index d46df09..8b4eea0 100644 --- a/lib/blkid/ChangeLog +++ b/lib/blkid/ChangeLog @@ -1,3 +1,7 @@ +2006-03-23 Theodore Ts'o + + * probe.c (blkid_verify): Fix file descriptor leak on error. + 2006-03-19 Theodore Ts'o * devname.c (dm_probe_all, dm_device_is_leaf): Make the diff --git a/lib/blkid/probe.c b/lib/blkid/probe.c index 4d78ec2..3ce1e4c 100644 --- a/lib/blkid/probe.c +++ b/lib/blkid/probe.c @@ -770,6 +770,7 @@ blkid_dev blkid_verify(blkid_cache cache, blkid_dev dev) if (((probe.fd = open(dev->bid_name, O_RDONLY)) < 0) || (fstat(probe.fd, &st) < 0)) { + if (probe.fd >= 0) close(fd); if (errno == ENXIO || errno == ENODEV || errno == ENOENT) { blkid_free_dev(dev); return NULL; @@ -837,6 +838,7 @@ try_again: } if (!dev->bid_type) { + if (probe.fd >= 0) close(fd); blkid_free_dev(dev); return NULL; } -- 1.8.3.1