mirror of
https://github.com/samba-team/samba.git
synced 2025-09-12 13:44:19 +03:00
r16556: Add mkdtemp to libreplace. This is apparantly available on Linux
and BSD systems, but it's not everywhere.
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
c73f4e11e4
commit
b3d2512ed4
@@ -45,6 +45,7 @@ chroot
|
|||||||
bzero
|
bzero
|
||||||
strerror
|
strerror
|
||||||
errno
|
errno
|
||||||
|
mkdtemp
|
||||||
mkstemp (a secure one!)
|
mkstemp (a secure one!)
|
||||||
pread
|
pread
|
||||||
pwrite
|
pwrite
|
||||||
@@ -75,4 +76,4 @@ Prerequisites:
|
|||||||
memset (for bzero)
|
memset (for bzero)
|
||||||
syslog (for vsyslog)
|
syslog (for vsyslog)
|
||||||
setnetgrent, getnetgrent, endnetgrent (for innetgr)
|
setnetgrent, getnetgrent, endnetgrent (for innetgr)
|
||||||
mktemp (for mkstemp)
|
mktemp (for mkstemp and mkdtemp)
|
||||||
|
@@ -57,7 +57,7 @@ AC_CHECK_FUNCS(strtoull __strtoull strtouq strtoll __strtoll strtoq)
|
|||||||
AC_CHECK_FUNCS(seteuid setresuid setegid setresgid chroot bzero strerror)
|
AC_CHECK_FUNCS(seteuid setresuid setegid setresgid chroot bzero strerror)
|
||||||
AC_CHECK_FUNCS(timegm setenv vsyslog setlinebuf mktime ftruncate chsize rename)
|
AC_CHECK_FUNCS(timegm setenv vsyslog setlinebuf mktime ftruncate chsize rename)
|
||||||
AC_CHECK_FUNCS(waitpid strnlen strlcpy strlcat innetgr initgroups memmove strdup)
|
AC_CHECK_FUNCS(waitpid strnlen strlcpy strlcat innetgr initgroups memmove strdup)
|
||||||
AC_CHECK_FUNCS(pread pwrite strndup strcasestr strtok_r)
|
AC_CHECK_FUNCS(pread pwrite strndup strcasestr strtok_r mkdtemp)
|
||||||
AC_HAVE_DECL(setresuid, [#include <unistd.h>])
|
AC_HAVE_DECL(setresuid, [#include <unistd.h>])
|
||||||
AC_HAVE_DECL(setresgid, [#include <unistd.h>])
|
AC_HAVE_DECL(setresgid, [#include <unistd.h>])
|
||||||
AC_HAVE_DECL(errno, [#include <errno.h>])
|
AC_HAVE_DECL(errno, [#include <errno.h>])
|
||||||
|
@@ -506,6 +506,21 @@ int rep_mkstemp(char *template)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_MKDTEMP
|
||||||
|
char * mkdtemp(char *template)
|
||||||
|
{
|
||||||
|
char *dname;
|
||||||
|
|
||||||
|
if (dname = mktemp(template)) {
|
||||||
|
if (mkdir(dname, 0700) >= 0) {
|
||||||
|
return dname;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef HAVE_PREAD
|
#ifndef HAVE_PREAD
|
||||||
static ssize_t pread(int __fd, void *__buf, size_t __nbytes, off_t __offset)
|
static ssize_t pread(int __fd, void *__buf, size_t __nbytes, off_t __offset)
|
||||||
{
|
{
|
||||||
|
@@ -173,6 +173,10 @@ typedef int (*comparison_fn_t)(const void *, const void *);
|
|||||||
int rep_mkstemp(char *temp);
|
int rep_mkstemp(char *temp);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef HAVE_MKDTEMP
|
||||||
|
char *mkdtemp(char *template);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef HAVE_LIMITS_H
|
#ifdef HAVE_LIMITS_H
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#endif
|
#endif
|
||||||
|
Reference in New Issue
Block a user