diff options
author | jdike <jdike> | 2003-01-18 16:26:53 +0000 |
---|---|---|
committer | jdike <jdike> | 2003-01-18 16:26:53 +0000 |
commit | db80f6ed9c3dc91ff41b8ac47153b0e9f54da435 (patch) | |
tree | 1b30092d83c95be69a2c183dc9f2a7cf9c1b4f89 | |
parent | 7f8870fbf3244d357dd31493c0de8a8f282efd0d (diff) | |
download | uml-history-db80f6ed9c3dc91ff41b8ac47153b0e9f54da435.tar.gz |
Fixed a bug with handling defined, but empty, environment variables.
-rw-r--r-- | arch/um/kernel/tempfile.c | 24 |
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) |