dmidecode-devel
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]