[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[dmidecode] [PATCH 1/3] util: Don't leak a file descriptor in read_file
From: |
Jean Delvare |
Subject: |
[dmidecode] [PATCH 1/3] util: Don't leak a file descriptor in read_file |
Date: |
Wed, 5 Apr 2017 15:03:00 +0200 |
If memory allocation fails, we should close the file descriptor
before returning the error.
Also remove unneeded parentheses on return, return isn't a function.
Fixes: 2339e722b49e ("util: Add read_file() function for reading sysfs files")
---
util.c | 11 ++++++-----
1 file changed, 6 insertions(+), 5 deletions(-)
--- dmidecode.orig/util.c 2017-04-05 14:06:58.539523034 +0200
+++ dmidecode/util.c 2017-04-05 14:15:14.388017902 +0200
@@ -113,13 +113,13 @@ void *read_file(size_t *max_len, const c
{
if (errno != ENOENT)
perror(filename);
- return(NULL);
+ return NULL;
}
if ((p = malloc(*max_len)) == NULL)
{
perror("malloc");
- return NULL;
+ goto out;
}
do
@@ -129,10 +129,10 @@ void *read_file(size_t *max_len, const c
{
if (errno != EINTR)
{
- close(fd);
perror(filename);
free(p);
- return NULL;
+ p = NULL;
+ goto out;
}
}
else
@@ -140,8 +140,9 @@ void *read_file(size_t *max_len, const c
}
while (r != 0);
- close(fd);
*max_len = r2;
+out:
+ close(fd);
return p;
}
--
Jean Delvare
SUSE L3 Support
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [dmidecode] [PATCH 1/3] util: Don't leak a file descriptor in read_file,
Jean Delvare <=