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