projects
/
openwrt
/
staging
/
blogic.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
9a8beb9
)
uml: free resources
author
Davidlohr Bueso
<
[email protected]
>
Tue, 26 Jul 2011 00:12:52 +0000
(17:12 -0700)
committer
Linus Torvalds
<
[email protected]
>
Tue, 26 Jul 2011 03:57:13 +0000
(20:57 -0700)
When creating the temp file there's a memory and file descriptor leak upon
error.
Signed-off-by: Davidlohr Bueso <
[email protected]
>
Signed-off-by: Richard Weinberger <
[email protected]
>
Reviewed-by: Vitaliy Ivanov <
[email protected]
>
Signed-off-by: Andrew Morton <
[email protected]
>
Signed-off-by: Linus Torvalds <
[email protected]
>
arch/um/os-Linux/mem.c
patch
|
blob
|
history
diff --git
a/arch/um/os-Linux/mem.c
b/arch/um/os-Linux/mem.c
index e696144d2be3ddb23ba952fdd17ea8fdf923036c..62878cf1d33fb8efce33ff9572d080544207cf18 100644
(file)
--- 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;