mirror of https://github.com/mirror/busybox.git
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>1_17_stable
parent
4ebdae3777
commit
9b814ca633
|
@ -39,23 +39,20 @@ int mktemp_main(int argc UNUSED_PARAM, char **argv)
|
||||||
{
|
{
|
||||||
const char *path;
|
const char *path;
|
||||||
char *chp;
|
char *chp;
|
||||||
unsigned opt;
|
unsigned opts;
|
||||||
|
|
||||||
|
path = getenv("TMPDIR");
|
||||||
|
if (!path || path[0] == '\0')
|
||||||
|
path = "/tmp";
|
||||||
|
|
||||||
|
/* -q and -t are ignored */
|
||||||
opt_complementary = "?1"; /* 1 argument max */
|
opt_complementary = "?1"; /* 1 argument max */
|
||||||
opt = getopt32(argv, "dqtp:", &path);
|
opts = getopt32(argv, "dqtp:", &path);
|
||||||
|
|
||||||
chp = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX");
|
chp = argv[optind] ? argv[optind] : xstrdup("tmp.XXXXXX");
|
||||||
|
chp = concat_path_file(path, chp);
|
||||||
|
|
||||||
if (opt & (4|8)) { /* -t and/or -p */
|
if (opts & 1) { /* -d */
|
||||||
const char *dir = getenv("TMPDIR");
|
|
||||||
if (dir && *dir != '\0')
|
|
||||||
path = dir;
|
|
||||||
else if (!(opt & 8)) /* no -p */
|
|
||||||
path = "/tmp/";
|
|
||||||
/* else path comes from -p DIR */
|
|
||||||
chp = concat_path_file(path, chp);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (opt & 1) { /* -d */
|
|
||||||
if (mkdtemp(chp) == NULL)
|
if (mkdtemp(chp) == NULL)
|
||||||
return EXIT_FAILURE;
|
return EXIT_FAILURE;
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue