From: "Paolo 'Blaisorblade' Giarrusso" <blaisorblade@yahoo.it>
To: Andrew Morton <akpm@osdl.org>
Cc: Jeff Dike <jdike@addtoit.com>,
linux-kernel@vger.kernel.org,
user-mode-linux-devel@lists.sourceforge.net
Subject: [uml-devel] [PATCH 14/17] uml: fix big stack user
Date: Fri, 07 Apr 2006 16:31:22 +0200 [thread overview]
Message-ID: <20060407143122.19201.48879.stgit@zion.home.lan> (raw)
In-Reply-To: <20060407142709.19201.99196.stgit@zion.home.lan>
From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Switch this proc from storing 4k of data (a whole path) on the stack to keeping
it on the heap.
Maybe it's not called in process context but only in early boot context (where
in UML you have a normal process stack on the host) but just to be safe, fix it.
While at it some little readability simplifications.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
---
arch/um/os-Linux/mem.c | 23 +++++++++++++----------
1 files changed, 13 insertions(+), 10 deletions(-)
diff --git a/arch/um/os-Linux/mem.c b/arch/um/os-Linux/mem.c
index 6ab372d..71bb90a 100644
--- a/arch/um/os-Linux/mem.c
+++ b/arch/um/os-Linux/mem.c
@@ -53,33 +53,36 @@ static void __init find_tempdir(void)
*/
int make_tempfile(const char *template, char **out_tempname, int do_unlink)
{
- char tempname[MAXPATHLEN];
+ char *tempname;
int fd;
+ tempname = malloc(MAXPATHLEN);
+
find_tempdir();
- if (*template != '/')
+ if (template[0] != '/')
strcpy(tempname, tempdir);
else
- *tempname = 0;
+ tempname[0] = '\0';
strcat(tempname, template);
fd = mkstemp(tempname);
if(fd < 0){
fprintf(stderr, "open - cannot create %s: %s\n", tempname,
strerror(errno));
- return -1;
+ goto out;
}
if(do_unlink && (unlink(tempname) < 0)){
perror("unlink");
- return -1;
+ goto out;
}
if(out_tempname){
- *out_tempname = strdup(tempname);
- if(*out_tempname == NULL){
- perror("strdup");
- return -1;
- }
+ *out_tempname = tempname;
+ } else {
+ free(tempname);
}
return(fd);
+out:
+ free(tempname);
+ return -1;
}
#define TEMPNAME_TEMPLATE "vm_file-XXXXXX"
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel
next prev parent reply other threads:[~2006-04-07 14:32 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-04-07 14:27 [uml-devel] [PATCH 00/17] Uml little fixups for new and existing code [for 2.6.17] Paolo 'Blaisorblade' Giarrusso
2006-04-07 14:30 ` [uml-devel] [PATCH 01/17] uml: make 64-bit COW files compatible with 32-bit ones Paolo 'Blaisorblade' Giarrusso
2006-04-07 14:30 ` [uml-devel] [PATCH 02/17] uml: safe migration path to the correct V3 COW format Paolo 'Blaisorblade' Giarrusso
2006-04-07 14:30 ` [uml-devel] [PATCH 03/17] uml: fix 2 harmless cast warnings for 64-bit Paolo 'Blaisorblade' Giarrusso
2006-04-07 16:02 ` [uml-devel] " Jeff Dike
2006-04-07 21:46 ` Blaisorblade
2006-04-07 14:30 ` [uml-devel] [PATCH 04/17] uml: request format warnings to GCC for appropriate functions Paolo 'Blaisorblade' Giarrusso
2006-04-07 14:31 ` [uml-devel] [PATCH 05/17] uml: fix format errors Paolo 'Blaisorblade' Giarrusso
2006-04-07 14:31 ` [uml-devel] [PATCH 06/17] uml: fix some double export warnings Paolo 'Blaisorblade' Giarrusso
2006-04-07 14:31 ` [uml-devel] [PATCH 07/17] uml: fix "extern-vs-static" proto conflict in TLS code Paolo 'Blaisorblade' Giarrusso
2006-04-07 14:31 ` [uml-devel] [PATCH 08/17] uml: prepare fixing compilation output Paolo 'Blaisorblade' Giarrusso
2006-04-07 16:05 ` [uml-devel] " Jeff Dike
2006-04-07 21:50 ` Blaisorblade
2006-04-07 14:31 ` [uml-devel] [PATCH 09/17] uml: fix critical typo for TT mode Paolo 'Blaisorblade' Giarrusso
2006-04-07 15:45 ` [uml-devel] " Jeff Dike
2006-04-07 14:31 ` [uml-devel] [PATCH 10/17] uml: support sparse for userspace files Paolo 'Blaisorblade' Giarrusso
2006-04-07 14:31 ` [uml-devel] [PATCH 11/17] uml: move outside spinlock call not needing it Paolo 'Blaisorblade' Giarrusso
2006-04-07 14:31 ` [uml-devel] [PATCH 12/17] uml: fix hang on run_helper() failure on uml_net Paolo 'Blaisorblade' Giarrusso
2006-04-07 14:31 ` [uml-devel] [PATCH 13/17] uml: fix failure path after conversion Paolo 'Blaisorblade' Giarrusso
2006-04-07 14:31 ` Paolo 'Blaisorblade' Giarrusso [this message]
2006-04-07 14:31 ` [uml-devel] [PATCH 15/17] uml: local_irq_save, not local_save_flags Paolo 'Blaisorblade' Giarrusso
2006-04-07 14:31 ` [uml-devel] [PATCH 16/17] uml: fix parallel make early failure on clean tree Paolo 'Blaisorblade' Giarrusso
2006-04-07 14:31 ` [uml-devel] [PATCH 17/17] uml: avoid warnings for diffent names for an unsigned quadword Paolo 'Blaisorblade' Giarrusso
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20060407143122.19201.48879.stgit@zion.home.lan \
--to=blaisorblade@yahoo.it \
--cc=akpm@osdl.org \
--cc=jdike@addtoit.com \
--cc=linux-kernel@vger.kernel.org \
--cc=user-mode-linux-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox