aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2024-04-10 08:09:30 -0400
committerJoseph Hunkeler <jhunkeler@gmail.com>2024-04-10 08:09:30 -0400
commit2a18221f217d6428bee8e87bc07deae8ed71d22b (patch)
tree6b067269020a3c5c9a19be3206b85eff521a2052 /src
parentec226b65e73dcb803c11ae09d869a2a2eae3e2f7 (diff)
downloadstasis-2a18221f217d6428bee8e87bc07deae8ed71d22b.tar.gz
xmkstemp falls back to /tmp when globals are not yet initialized
* Increase t_name buffer size to match input argument sizes
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)