[net.bugs.4bsd] New versions of sendmail may crash

pag@hao.UUCP (Peter Gross) (12/10/84)

After making a very minor change to sendmail and recompiling it,
it died with a segmentation violation (inside malloc()).  After
much detective work, I figured out that reading in the existing
sendmail.fc file was writing over malloc's memory arena.  Sendmail has
checks (based on version.c) to prevent using an out-of-sync sendmail.fc
with a new version of sendmail, but unfortunately the new version
generation involves use of SCCS which very few 4.2 sites have.  The
upshot of this is you must remake your sendmail.fc file after
installing any new version of sendmail.

Subject: sendmail may crash if used with old sendmail.fc file
Index: /usr/src/usr.lib/sendmail/src/Makefile 4.2BSD

Description:
	Recompiled versions of sendmail may crash due to using old
	frozen configuration file (sendmail.fc).  This is due to
	data and bss locations changing in the new version.
Repeat-By:
	Freeze the configuration file (sendmail -bz).
	Make a minor change to sendmail (add a few printf's, etc.)
	Recompile, then try using sendmail (say, sendmail -bt).  It
	will very likely die.
Fix:
	Have Makefile remove existing sendmail.fc before installing new
	version. diffs follow:

*** /tmp/,RCSt1003846	Mon Dec 10 09:29:07 1984
--- Makefile	Mon Dec 10 09:28:28 1984
***************
*** 2,8
  #  SENDMAIL Makefile.
  #
  #	Version:
! #		@(#)Makefile.m4	4.1		7/25/83
  #
  
  LIBS=	../lib/libsys.a -ldbm

--- 2,8 -----
  #  SENDMAIL Makefile.
  #
  #	Version:
! #		$Header: Makefile,v 4.2 84/12/10 09:26:19 root Exp $
  #
  
  LIBS=	../lib/libsys.a -ldbm
***************
*** 62,67
  
  install: all
  	$(INSTALL) sendmail $(DESTDIR)/usr/lib
  
  version: newversion $(OBJS) Version.c
  

--- 62,70 -----
  
  install: all
  	$(INSTALL) sendmail $(DESTDIR)/usr/lib
+ 	echo "Removing frozen sendmail configuration file"
+ 	-rm -f $(DESTDIR)/usr/lib/sendmail.fc
+ 	echo "Recreate frozen config file via sendmail -bz"
  
  version: newversion $(OBJS) Version.c