aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko <vda.linux@googlemail.com>2010-06-18 03:16:27 +0200
committerDenys Vlasenko <vda.linux@googlemail.com>2010-06-18 03:16:27 +0200
commit9b814ca6335806a6eb47e22805620ec81d5d849d (patch)
tree37f70b9da97e9714227b536811be47f4f7fd3959
parent4ebdae3777b8c9175d5d07090989f7e498befc42 (diff)
downloadbusybox-w32-9b814ca6335806a6eb47e22805620ec81d5d849d.tar.gz
busybox-w32-9b814ca6335806a6eb47e22805620ec81d5d849d.tar.bz2
busybox-w32-9b814ca6335806a6eb47e22805620ec81d5d849d.zip
mktemp: be more compatible: bare "mktemp" creates tempfile in /tmp, not cwd
function old new delta mktemp_main 171 152 -19 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r--debianutils/mktemp.c23
1 files changed, 10 insertions, 13 deletions
diff --git a/debianutils/mktemp.c b/debianutils/mktemp.c
index 0dcb1e826..c40211476 100644
--- a/debianutils/mktemp.c
+++ b/debianutils/mktemp.c
@@ -39,23 +39,20 @@ int mktemp_main(int argc UNUSED_PARAM, char **argv)
39{ 39{
40 const char *path; 40 const char *path;
41 char *chp; 41 char *chp;
42 unsigned opt; 42 unsigned opts;
43 43
44 path = getenv("TMPDIR");
45 if (!path || path[0] == '\0')
46 path = "/tmp";
47
48 /* -q and -t are ignored */
44 opt_complementary = "?1"; /* 1 argument max */ 49 opt_complementary = "?1"; /* 1 argument max */
45 opt = getopt32(argv, "dqtp:", &path); 50 opts = getopt32(argv, "dqtp:", &path);
46 chp = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX");
47 51
48 if (opt & (4|8)) { /* -t and/or -p */ 52 chp = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX");
49 const char *dir = getenv("TMPDIR"); 53 chp = concat_path_file(path, chp);
50 if (dir && *dir != '\0')
51 path = dir;
52 else if (!(opt & 8)) /* no -p */
53 path = "/tmp/";
54 /* else path comes from -p DIR */
55 chp = concat_path_file(path, chp);
56 }
57 54
58 if (opt & 1) { /* -d */ 55 if (opts & 1) { /* -d */
59 if (mkdtemp(chp) == NULL) 56 if (mkdtemp(chp) == NULL)
60 return EXIT_FAILURE; 57 return EXIT_FAILURE;
61 } else { 58 } else {