From: Davidlohr Bueso <d...@gnu.org>

When creating the temp file there's a memory and file descriptor leak upon 
error.

Signed-off-by: Davidlohr Bueso <d...@gnu.org>
---
 arch/um/os-Linux/mem.c |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/arch/um/os-Linux/mem.c b/arch/um/os-Linux/mem.c
index e696144..62878cf 100644
--- a/arch/um/os-Linux/mem.c
+++ b/arch/um/os-Linux/mem.c
@@ -176,7 +176,7 @@ static int __init make_tempfile(const char *template, char 
**out_tempname,
 
        find_tempdir();
        if ((tempdir == NULL) || (strlen(tempdir) >= MAXPATHLEN))
-               return -1;
+               goto out;
 
        if (template[0] != '/')
                strcpy(tempname, tempdir);
@@ -191,13 +191,15 @@ static int __init make_tempfile(const char *template, 
char **out_tempname,
        }
        if (do_unlink && (unlink(tempname) < 0)) {
                perror("unlink");
-               goto out;
+               goto close;
        }
        if (out_tempname) {
                *out_tempname = tempname;
        } else
                free(tempname);
        return fd;
+close:
+       close(fd);
 out:
        free(tempname);
        return -1;
-- 
1.7.4.1



------------------------------------------------------------------------------
All of the data generated in your IT infrastructure is seriously valuable.
Why? It contains a definitive record of application performance, security 
threats, fraudulent activity, and more. Splunk takes this data and makes 
sense of it. IT sense. And common sense.
http://p.sf.net/sfu/splunk-d2d-c2
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

Reply via email to