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>
