https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=200988
Bug(s) fixed: 200988
Bug Description: mod_admserv: use setresuid() in lieu of seteuid() on
HP/ux
Reviewed by: ???
Files: See diff
Branch: HEAD
Fix Description: Per Ulf's suggestion, use SETEUID macro. apxs will
define -DHPUX11 on an HP/ux machine causing this code to be executed. I
also included a generic HPUX and HPUX10 for completeness. I've only
tested that it won't break FC, not that it works on HP/ux (but it seems
obvious that it will). Maybe we can get Ulf's help in testing...
Platforms tested: FC4
Flag Day: no
Doc impact: no
QA impact: no
Index: mod_admserv.c
===================================================================
RCS file: /cvs/dirsec/mod_admserv/mod_admserv.c,v
retrieving revision 1.26
diff -u -r1.26 mod_admserv.c
--- mod_admserv.c 17 Jul 2006 19:01:29 -0000 1.26
+++ mod_admserv.c 8 Aug 2006 19:27:55 -0000
@@ -65,6 +65,12 @@
#include "mod_admserv.h"
+#if defined(HPUX) || defined(HPUX10) || defined(HPUX11)
+#define SETEUID(id) setresuid((uid_t) -1, id, (uid_t) -1)
+#else
+#define SETEUID(id) seteuid(id)
+#endif
+
/*
* These are keys for items we store in r->notes to pass data from one stage
* in the request to another. They must be unique. If necessary, prefix
@@ -2031,7 +2037,7 @@
#ifdef CHANGE_EUID
/* make sure pset creates the cache file owned by the server uid, not root */
if (geteuid() == 0) {
- seteuid(unixd_config.user_id);
+ SETEUID(unixd_config.user_id);
reseteuid = 1;
}
#endif /* CHANGE_EUID */
@@ -2044,7 +2050,7 @@
#ifdef CHANGE_EUID
if (reseteuid) {
- seteuid(0);
+ SETEUID(0);
}
#endif /* CHANGE_EUID */
--
Fedora-directory-devel mailing list
Fedora-directory-devel@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/fedora-directory-devel