static const char tempname[] = "/shooter-XXXXXX";
const char *path;
char *name = NULL;
+ size_t name_size;
int fd = -1;
int ret = -1;
- int path_len = 0;
path = getenv("XDG_RUNTIME_DIR");
if (!path) {
errno = ENOENT;
return -1;
}
- path_len = strlen(path);
- if (path_len == 0)
- return -1;
- name = (char *)malloc(path_len + (int)sizeof(tempname));
+ name_size = strlen(path) + sizeof(tempname);
+ name = (char *)malloc(name_size);
if (name == NULL)
return -1;
- strncpy(name, path, path_len);
- strncat(name, tempname, (int)sizeof(tempname));
+ snprintf(name, name_size, "%s%s", path, tempname);
fd = mkstemp(name);
if (fd >= 0)