提交 2a6d0ac1 编写于 作者: D Davidlohr Bueso 提交者: Linus Torvalds

uml: free resources

When creating the temp file there's a memory and file descriptor leak upon
error.
Signed-off-by: NDavidlohr Bueso <dave@gnu.org>
Signed-off-by: NRichard Weinberger <richard@nod.at>
Reviewed-by: NVitaliy Ivanov <vitalivanov@gmail.com>
Signed-off-by: NAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: NLinus Torvalds <torvalds@linux-foundation.org>
上级 9a8beb93
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册