From 523dad4bb3f75e4e313aa2a8d08a98028b1d7a52 Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Sat, 12 Dec 2009 16:43:13 -0800 Subject: [PATCH] Use seteuid() (if available) when using setuid(). --- clientserver.c | 6 +++++- configure.in | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/clientserver.c b/clientserver.c index c8d2a0e7..ef559676 100644 --- a/clientserver.c +++ b/clientserver.c @@ -722,7 +722,11 @@ static int rsync_module(int f_in, int f_out, int i, char *addr, char *host) } #endif - if (setuid(uid)) { + if (setuid(uid) < 0 +#ifdef HAVE_SETEUID + || seteuid(uid) < 0 +#endif + ) { rsyserr(FLOG, errno, "setuid %d failed", (int)uid); io_printf(f_out, "@ERROR: setuid failed\n"); return -1; diff --git a/configure.in b/configure.in index ee0c0a64..f0f8ab17 100644 --- a/configure.in +++ b/configure.in @@ -570,7 +570,7 @@ AC_CHECK_FUNCS(waitpid wait4 getcwd strdup chown chmod lchmod mknod mkfifo \ memmove lchown vsnprintf snprintf vasprintf asprintf setsid strpbrk \ strlcat strlcpy strtol mallinfo getgroups setgroups geteuid getegid \ setlocale setmode open64 lseek64 mkstemp64 mtrace va_copy __va_copy \ - strerror putenv iconv_open locale_charset nl_langinfo getxattr \ + seteuid strerror putenv iconv_open locale_charset nl_langinfo getxattr \ extattr_get_link sigaction sigprocmask setattrlist) dnl cygwin iconv.h defines iconv_open as libiconv_open -- 2.34.1