Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Nov 1996 21:12:33 -0600 (CST)
From:      igor@alecto.physics.uiuc.edu (Igor Roshchin)
To:        roberto@keltia.freenix.fr (Ollivier Robert), eric@sendmail.org
Cc:        freebsd-security@FreeBSD.org, freebsd-hackers@FreeBSD.org
Subject:   Re: New sendmail bug...
Message-ID:  <199611180312.VAA27437@alecto.physics.uiuc.edu>
In-Reply-To: <Mutt.19961117125853.roberto@keltia.freenix.fr> from "Ollivier Robert" at Nov 17, 96 12:58:53 pm

next in thread | previous in thread | raw e-mail | index | archive | help
Hello!

May be I am missing something,
but I was not able to compile the patched version
of the sendmail 8.7.6.4,
as it appears in FreeBSD distribution (sup.freebsd.org).

main.o: Undefined symbol `_vendor_daemon_setup' referenced from text segment
*** Error code 1


Is it a problem due to the version of FreeBSD ?
I tried it on 2.1.5-stable and 2.1.5-release; -
results were the same.

Thanks in advance for your suggestions.

IgoR


> 
> ------- main.c -------
> *** -	Wed Dec 31 16:00:00 1969
> --- main.c	Sat Nov 16 07:07:17 1996
> ***************
> *** 493,507 ****
>   			{
>   			  case MD_DAEMON:
>   			  case MD_FGDAEMON:
> ! # ifdef DAEMON
> ! 				if (RealUid != 0)
> ! 				{
> ! 					usrerr("Permission denied");
> ! 					exit(EX_USAGE);
> ! 				}
> ! 				vendor_daemon_setup(CurEnv);
> ! 				/* fall through ... */
> ! # else
>   				usrerr("Daemon mode not implemented");
>   				ExitStat = EX_USAGE;
>   				break;
> --- 493,499 ----
>   			{
>   			  case MD_DAEMON:
>   			  case MD_FGDAEMON:
> ! # ifndef DAEMON
>   				usrerr("Daemon mode not implemented");
>   				ExitStat = EX_USAGE;
>   				break;
> ***************
> *** 899,904 ****
> --- 891,904 ----
>   		/* fall through ... */
>   
>   	  case MD_DAEMON:
> + 		/* check for permissions */
> + 		if (RealUid != 0)
> + 		{
> + 			usrerr("Permission denied");
> + 			exit(EX_USAGE);
> + 		}
> + 		vendor_daemon_setup(CurEnv);
> + 
>   		/* remove things that don't make sense in daemon mode */
>   		FullName = NULL;
>   		GrabTo = FALSE;
> ***************
> *** 1932,1937 ****
> --- 1932,1946 ----
>   		syslog(LOG_INFO, "restarting %s on signal", SaveArgv[0]);
>   #endif
>   	releasesignal(SIGHUP);
> + 	if (setuid(RealUid) < 0 || setgid(RealGid) < 0)
> + 	{
> + #ifdef LOG
> + 		if (LogLevel > 0)
> + 			syslog(LOG_ALERT, "could not set[ug]id(%d, %d): %m",
> + 				RealUid, RealGid);
> + #endif
> + 		exit(EX_OSERR);
> + 	}
>   	execv(SaveArgv[0], (ARGV_T) SaveArgv);
>   #ifdef LOG
>   	if (LogLevel > 0)
> 
> 




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199611180312.VAA27437>