summaryrefslogtreecommitdiff
path: root/probe_roms.c
diff options
context:
space:
mode:
authorArtur Wojcik <artur.wojcik@intel.com>2009-12-10 12:03:40 -0700
committerDan Williams <dan.j.williams@intel.com>2009-12-10 12:03:40 -0700
commit922f66a935df8e6b3b66073a89c47c68c2e8cbe3 (patch)
treeb45ada133d95347e9fb7c02b0624cd0368cd729a /probe_roms.c
parent5dbb8c8d765cb5ac17a4778b0e60d9d076593380 (diff)
Fix for resource leak on error path.
Make sure opened file descriptors are cleaned up in the exit path when error occured. Signed-off-by: Artur Wojcik <artur.wojcik@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Diffstat (limited to 'probe_roms.c')
-rw-r--r--probe_roms.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/probe_roms.c b/probe_roms.c
index a9a86388..0f0ffbcc 100644
--- a/probe_roms.c
+++ b/probe_roms.c
@@ -80,7 +80,7 @@ void probe_roms_exit(void)
int probe_roms_init(unsigned long align)
{
- int fd;
+ int fd = -1;
int rc = 0;
/* valid values are 2048 and 512. 512 is for PCI-3.0 compliant
@@ -107,9 +107,11 @@ int probe_roms_init(unsigned long align)
if (rc == 0)
rom_fd = fd;
- else
+ else {
+ if (fd >= 0)
+ close(fd);
probe_roms_exit();
-
+ }
return rc;
}