The branch, master has been updated via 4493c57 uid_wrapper: Add uwrap_setresuid(). via 17f1276 uid_wrapper: Add uwrap_setregid(). via c2b9e9b uid_wrapper: Add uwrap_setreuid(). from 556ef6a s4-param copy print_parameter and equal_parameter in from source3
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master - Log ----------------------------------------------------------------- commit 4493c578b0da44ae2100cc0d4d6acc714bf39a3f Author: Andreas Schneider <a...@samba.org> Date: Fri Oct 7 10:30:23 2011 +0200 uid_wrapper: Add uwrap_setresuid(). Autobuild-User: Andreas Schneider <a...@cryptomilk.org> Autobuild-Date: Fri Oct 7 12:04:05 CEST 2011 on sn-devel-104 commit 17f1276feadae1cfeea559e46e44ad136c438251 Author: Andreas Schneider <a...@samba.org> Date: Thu Oct 6 16:52:03 2011 +0200 uid_wrapper: Add uwrap_setregid(). commit c2b9e9b0eab3b10e36a56835602e7c931c406b12 Author: Andreas Schneider <a...@samba.org> Date: Thu Oct 6 16:25:32 2011 +0200 uid_wrapper: Add uwrap_setreuid(). ----------------------------------------------------------------------- Summary of changes: lib/uid_wrapper/uid_wrapper.c | 33 +++++++++++++++++++++++++++++++++ lib/uid_wrapper/uid_wrapper.h | 18 ++++++++++++++++++ 2 files changed, 51 insertions(+), 0 deletions(-) Changeset truncated at 500 lines: diff --git a/lib/uid_wrapper/uid_wrapper.c b/lib/uid_wrapper/uid_wrapper.c index 05d226b..8229fbb 100644 --- a/lib/uid_wrapper/uid_wrapper.c +++ b/lib/uid_wrapper/uid_wrapper.c @@ -73,6 +73,28 @@ _PUBLIC_ int uwrap_seteuid(uid_t euid) return 0; } +_PUBLIC_ int uwrap_setreuid(uid_t ruid, uid_t euid) +{ + uwrap_init(); + if (!uwrap.enabled) { + return setreuid(ruid, euid); + } + /* assume for now that the ruid stays as root */ + uwrap.euid = euid; + return 0; +} + +_PUBLIC_ int uwrap_setresuid(uid_t ruid, uid_t euid, uid_t suid) +{ + uwrap_init(); + if (!uwrap.enabled) { + return setresuid(ruid, euid, suid); + } + /* assume for now that the ruid stays as root */ + uwrap.euid = euid; + return 0; +} + _PUBLIC_ uid_t uwrap_geteuid(void) { uwrap_init(); @@ -93,6 +115,17 @@ _PUBLIC_ int uwrap_setegid(gid_t egid) return 0; } +_PUBLIC_ int uwrap_setregid(gid_t rgid, gid_t egid) +{ + uwrap_init(); + if (!uwrap.enabled) { + return setregid(rgid, egid); + } + /* assume for now that the ruid stays as root */ + uwrap.egid = egid; + return 0; +} + _PUBLIC_ uid_t uwrap_getegid(void) { uwrap_init(); diff --git a/lib/uid_wrapper/uid_wrapper.h b/lib/uid_wrapper/uid_wrapper.h index b3b11d9..51a11c5 100644 --- a/lib/uid_wrapper/uid_wrapper.h +++ b/lib/uid_wrapper/uid_wrapper.h @@ -21,8 +21,11 @@ int uwrap_enabled(void); int uwrap_seteuid(uid_t euid); +int uwrap_setreuid(uid_t reuid, uid_t euid); +int uwrap_setresuid(uid_t reuid, uid_t euid, uid_t suid); uid_t uwrap_geteuid(void); int uwrap_setegid(gid_t egid); +int uwrap_setregid(gid_t egid); uid_t uwrap_getegid(void); int uwrap_setgroups(size_t size, const gid_t *list); int uwrap_getgroups(int size, gid_t *list); @@ -34,11 +37,26 @@ gid_t uwrap_getgid(void); #endif #define seteuid uwrap_seteuid +#ifdef setreuid +#undef setreuid +#endif +#define setreuid uwrap_setreuid + +#ifdef setresuid +#undef setresuid +#endif +#define setresuid uwrap_setresuid + #ifdef setegid #undef setegid #endif #define setegid uwrap_setegid +#ifdef setregid +#undef setregid +#endif +#define setregid uwrap_setegid + #ifdef geteuid #undef geteuid #endif -- Samba Shared Repository