openbsd-ports/net/uucp/patches/patch-unix_init_c

41 lines
1.1 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Deal with _POSIX_SAVED_IDS when relinquishing privileges
use MAXHOSTNAMELEN
$OpenBSD: patch-unix_init_c,v 1.1.1.1 2001/07/13 02:27:16 fgsch Exp $
--- unix/init.c.orig Sun Aug 20 15:30:24 1995
+++ unix/init.c Thu Jul 12 21:56:10 2001
@@ -210,7 +210,8 @@ usysdep_initialize (puuconf,iflags)
if (iuuconf == UUCONF_NOT_FOUND)
{
#if HAVE_GETHOSTNAME
- char ab[256];
+#include <sys/param.h>
+ char ab[MAXHOSTNAMELEN];
if (gethostname (ab, sizeof ab - 1) < 0)
ulog (LOG_FATAL, "gethostname: %s", strerror (errno));
@@ -272,8 +273,10 @@ usysdep_initialize (puuconf,iflags)
&& geteuid () == 0)
{
q = getpwnam (OWNER);
- if (q != NULL)
+ if (q != NULL) {
+ seteuid (q->pw_uid);
setuid (q->pw_uid);
+ }
}
if ((iflags & INIT_GETCWD) != 0)
@@ -371,8 +374,10 @@ usysdep_exit (fsuccess)
boolean fsysdep_other_config (z)
const char *z;
{
- (void) setuid (getuid ());
+ (void) setegid (getgid ());
(void) setgid (getgid ());
+ (void) seteuid (getuid ());
+ (void) setuid (getuid ());
return TRUE;
}