summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjdike <jdike>2003-01-18 16:26:53 +0000
committerjdike <jdike>2003-01-18 16:26:53 +0000
commitdb80f6ed9c3dc91ff41b8ac47153b0e9f54da435 (patch)
tree1b30092d83c95be69a2c183dc9f2a7cf9c1b4f89
parent7f8870fbf3244d357dd31493c0de8a8f282efd0d (diff)
downloaduml-history-db80f6ed9c3dc91ff41b8ac47153b0e9f54da435.tar.gz
Fixed a bug with handling defined, but empty, environment variables.
-rw-r--r--arch/um/kernel/tempfile.c24
1 files changed, 12 insertions, 12 deletions
diff --git a/arch/um/kernel/tempfile.c b/arch/um/kernel/tempfile.c
index f4bfb33..7fde8f5 100644
--- a/arch/um/kernel/tempfile.c
+++ b/arch/um/kernel/tempfile.c
@@ -23,20 +23,20 @@ static void __init find_tempdir(void)
if(tempdir != NULL) return; /* We've already been called */
for(i = 0; dirs[i]; i++){
dir = getenv(dirs[i]);
- if(dir != NULL) break;
+ if((dir != NULL) && (*dir != '\0'))
+ break;
}
- if(dir == NULL) dir = "/tmp";
- else if(*dir == '\0') dir = NULL;
- if(dir != NULL) {
- tempdir = malloc(strlen(dir) + 2);
- if(tempdir == NULL){
- fprintf(stderr, "Failed to malloc tempdir, "
- "errno = %d\n", errno);
- return;
- }
- strcpy(tempdir, dir);
- strcat(tempdir, "/");
+ if((dir == NULL) || (*dir == '\0'))
+ dir = "/tmp";
+
+ tempdir = malloc(strlen(dir) + 2);
+ if(tempdir == NULL){
+ fprintf(stderr, "Failed to malloc tempdir, "
+ "errno = %d\n", errno);
+ return;
}
+ strcpy(tempdir, dir);
+ strcat(tempdir, "/");
}
int make_tempfile(const char *template, char **out_tempname, int do_unlink)