aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/utils.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/src/utils.c b/src/utils.c
index 402b62d..d24e32d 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -453,10 +453,19 @@ void debug_shell() {
}
char *xmkstemp(FILE **fp, const char *mode) {
- char t_name[PATH_MAX];
+ int fd = -1;
+ char tmpdir[PATH_MAX];
+ char t_name[PATH_MAX * 2];
+
+ if (globals.tmpdir) {
+ strcpy(tmpdir, globals.tmpdir);
+ } else {
+ strcpy(tmpdir, "/tmp");
+ }
memset(t_name, 0, sizeof(t_name));
- sprintf(t_name, "%s/%s", globals.tmpdir, "OMC.XXXXXX");
- int fd = mkstemp(t_name);
+ sprintf(t_name, "%s/%s", tmpdir, "OMC.XXXXXX");
+
+ fd = mkstemp(t_name);
*fp = fdopen(fd, mode);
if (!*fp) {
if (fd > 0)