diff options
Diffstat (limited to 'guts/mktemp.c')
-rw-r--r-- | guts/mktemp.c | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/guts/mktemp.c b/guts/mktemp.c new file mode 100644 index 0000000..e59cb28 --- /dev/null +++ b/guts/mktemp.c @@ -0,0 +1,32 @@ +/* + * static char * + * wrap_mktemp(char *template) { + * char * rc = NULL; + */ + size_t len; + char *tmp_template; + + if (!template) { + errno = EFAULT; + return NULL; + } + + len = strlen(template); + tmp_template = PSEUDO_ROOT_PATH(AT_FDCWD, template, AT_SYMLINK_NOFOLLOW); + + if (!tmp_template) { + errno = ENOENT; + return NULL; + } + + rc = real_mktemp(tmp_template); + + /* mktemp only changes the XXXXXX at the end, and never created + * a file -- note the race condition implied here. + */ + memcpy(template + len - 6, tmp_template + strlen(tmp_template) - 6, 6); + free(tmp_template); + +/* return rc; + * } + */ |