diff options
| -rw-r--r-- | src/utils.c | 15 | 
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) | 
