    This is the first official patch for Tripwire v1.0, which was
released on November 3, 1992.  There are a number of bug fixes,
as well as one functional addition.  All of these changes are
documented in the Changelog file in the top-level directory.  

    Although the changes to the source files are small, each
change necessitates a change in the test database.  The largest
chunk of the patch file updates the changed entries to reflect
their new signatures and file sizes.

    One change deems mentioning here:  You can now use 'tripwire
-update' with an arbitrary number of arguments.  Before, Tripwire
would only update one file or entry at a time.  We were able to
update the test database with a single command line:  

		tripwire -v -update `cat /tmp/changedfiles`

===

    To apply this patch, use Larry Wall's 'patch' program.  In
the top-level directory, simply type:

		patch -p1 < /tmp/patchfile

    As usual, if you have any problems, please mail GeneK or
Spaf.  The Tripwire distribution files at (ftp.cs.purdue.edu)
have NOT been updated with this patch.  You can get the latest
version of the sources from that machine, ftp.cs.purdue.edu, in 
pub/spaf/COAST/Tripwire, but be sure to get an patch files present!

    You can confirm that you are running the latest version
by typing 'tripwire -version'.  You should see:

		Tripwire version 1.0.1 (patchlevel 2)

		Copyright (c) 1992, Purdue Research Foundation
			By Gene Kim, Eugene Spafford


    As always, please feel free to mail either Gene if you have
any suggestions for future improvements, gripes that demand
attention, or questions that cry out answers.


Gene & Gene
Kim  & Spafford
December 2, 1992

    
diff -c tripwire-1.0/Changelog:1.1.1.1 tripwire-1.0/Changelog:1.4
*** tripwire-1.0/Changelog:1.1.1.1	Tue Dec  1 15:19:43 1992
--- tripwire-1.0/Changelog	Tue Dec  1 15:19:43 1992
***************
*** 1,6 ****
! # $Id: Changelog,v 1.3 92/11/03 13:34:39 genek Exp $
  
  The following is the official list of changes between revisions:
  
  first official release
  1.0:					 Tue Nov  3 02:35:17 EST 1992
--- 1,16 ----
! # $Id: Changelog,v 1.4 92/11/23 22:15:07 genek Exp $
  
  The following is the official list of changes between revisions:
+ 
+ first official patch  :-)
+ 1.0.1: 					 Mon Nov 23 15:58:50 EST 1992
+     fixed placement of backup database file in database update mode.
+     fixed install target in ./src and ./man Makefiles.  (thanks Hugo Cartaxeiro)
+     changed Ported entries for Pyramids.  (thanks Peter Riili)
+     fixed Acknowledgements section in README.  (thanks Michael Barnett)
+     fixed temporary filename generation problem.  (thanks Gene Spafford)
+     fixed DIST variable in ./tests Makefile.
+     fixed typo in config.pre.y that prevented compilation with bison.
  
  first official release
  1.0:					 Tue Nov  3 02:35:17 EST 1992
diff -c tripwire-1.0/FAQ:1.1.1.1 tripwire-1.0/FAQ:1.2
*** tripwire-1.0/FAQ:1.1.1.1	Tue Dec  1 15:19:44 1992
--- tripwire-1.0/FAQ	Tue Dec  1 15:19:44 1992
***************
*** 1,4 ****
! # $Id: FAQ,v 1.2 92/11/03 13:34:43 genek Exp $
  
  #
  # FAQ for Tripwire
--- 1,4 ----
! # $Id: FAQ,v 1.2 92/11/23 21:19:55 genek Exp $
  
  #
  # FAQ for Tripwire
***************
*** 62,72 ****
  	Tripwire never traverses symbolic links or enters another
  	filesystem.  
  
  
  Gene & Gene
  Kim  & Spafford
  
! November 2, 1992
  (genek@mentor.cc.purdue.edu)
  (spaf@cs.purdue.edu)
  	
--- 62,86 ----
  	Tripwire never traverses symbolic links or enters another
  	filesystem.  
  
+ Q:	Is there any way I can Tripwire to print out the names of the
+ 	files as they are being scanned?  I want to know which files
+ 	Tripwire is spending all of its time crunching.
+ 
+ A:	Try using 'tripwire -v'.  This wasn't documented in the first
+ 	tripwire.5 manual page.
+ 
+ Q:	I try to initialize the database by typing 'tripwire -initialize'
+ 	but I can't find the binary.  Where is the tripwire executable?
+ 
+ A:	./src/tripwire is where the binary is built.  'make install'
+ 	will install in the $(DESTDIR) of your choice, as defined
+ 	in the top-level Makefile.
  
+ 
  Gene & Gene
  Kim  & Spafford
  
! November 23, 1992
  (genek@mentor.cc.purdue.edu)
  (spaf@cs.purdue.edu)
  	
diff -c tripwire-1.0/Ported:1.1.1.1 tripwire-1.0/Ported:1.2
*** tripwire-1.0/Ported:1.1.1.1	Tue Dec  1 15:19:45 1992
--- tripwire-1.0/Ported	Tue Dec  1 15:19:45 1992
***************
*** 1,4 ****
! ## $Id: Ported,v 1.2 92/11/03 04:57:24 genek Exp $ 
  
  ##  Following is an information list of machines to which
  ##  Tripwire has been ported.  This lists the OS environment,
--- 1,4 ----
! ## $Id: Ported,v 1.2 92/11/23 21:19:57 genek Exp $ 
  
  ##  Following is an information list of machines to which
  ##  Tripwire has been ported.  This lists the OS environment,
***************
*** 134,139 ****
--- 134,140 ----
  tw.config:
  notes:
  contributor:    Michaela Harlander <harmic@physik.tu-muenchen.de>
+ contributor:    Gene Kim <genek@mentor.cc.purdue.edu>
  
  vendor:		MIPS Computer Systems 
  os:		EP/IX
***************
*** 194,200 ****
  contributor:    Ken McDonell <kenj@pyramid.com>
  
  vendor:         Pyramid
! os:             DC/OSx (att universe)
  os version:     5.1 [all releases]
  compiler:       cc
  cflags:         -OG
--- 195,201 ----
  contributor:    Ken McDonell <kenj@pyramid.com>
  
  vendor:         Pyramid
! os:             OSx (att universe)
  os version:     5.1 [all releases]
  compiler:       cc
  cflags:         -OG
***************
*** 205,211 ****
  contributor:    Ken McDonell <kenj@pyramid.com>
  
  vendor:         Pyramid
! os:             DC/OSx (ucb universe)
  os version:     5.1 [all releases]
  compiler:       cc
  cflags:         -OG
--- 206,212 ----
  contributor:    Ken McDonell <kenj@pyramid.com>
  
  vendor:         Pyramid
! os:             OSx (ucb universe)
  os version:     5.1 [all releases]
  compiler:       cc
  cflags:         -OG
diff -c tripwire-1.0/README:1.1.1.1 tripwire-1.0/README:1.3
*** tripwire-1.0/README:1.1.1.1	Tue Dec  1 15:19:46 1992
--- tripwire-1.0/README	Tue Dec  1 15:19:46 1992
***************
*** 1,4 ****
! ## $Id: README,v 1.8 92/11/03 13:34:49 genek Exp $
  ##
  ## README for Tripwire
  ##
--- 1,4 ----
! ## $Id: README,v 1.3 92/11/24 03:18:49 genek Exp $
  ##
  ## README for Tripwire
  ##
***************
*** 314,319 ****
--- 314,322 ----
  for every specified file.  A backup of the old database is
  created in the ./databases directory.
  
+     Note that Tripwire can now handle arbitrary numbers of
+ arguments in Database Update mode.  This was added in version 1.0.1.
+ 
  3.6.  A quick-checking mode
  ===========================
  
***************
*** 571,577 ****
  cryptographic checksumming algorithms.
  
      The version of CRC-32 included with Tripwire was written by 
! Gary S. Brown XXX
      This CRC-32 implementation runs at about 111 Kbytes/second.
  
  6.4.  CRC-16
--- 574,581 ----
  cryptographic checksumming algorithms.
  
      The version of CRC-32 included with Tripwire was written by 
! Gary S. Brown.
! 
      This CRC-32 implementation runs at about 111 Kbytes/second.
  
  6.4.  CRC-16
***************
*** 680,697 ****
  bugs, and refined Tripwire beyond the authors' expectations.  Special
  thanks go to:
  
!     Walker Aumann, Lance R. Bailey, David Barr, Greg Black, Adrian P.
!     van Bloois, J. Dean Brock, Kurt Cockrum, John Cristy, Jim Duncan,
!     David S. Goldberg, Johannes Gronvall, Tom Gutnick, Michaela
!     Harlander, Andreas Haug, Bill Henderson, Jim Hendrick, Norman
!     Hill, Paul Joslin, Poul-Henning Kamp, Leslie Kordas, Simon Leinen,
!     Philip Yzarn de Louraille, Stephen Mahler, Fletcher Mattox, Ken
!     McDonell, Wes Morgan, Phil Moyer, Dan O'Neill, Joe Polcari,
!     Phillip Porch, Brad Powell, W.  Purvis, Daniel Ray, Dean Rich,
!     Bill Romine, John P. Rouillard, Rich Salz, Christopher Samuel,
!     Pete Shipley., David W. Smith, Harlan Stenn, Margarita Suarez,
!     John G. Sutton, Tim Tessin, John Wagner, David Wiseman, Irving
!     Wolfe, Stephen M.  Youndt
  
      GeneK and Spaf want to apologize in advance to anyone who sent us
  patches, comments or configuration info and whose name doesn't appear
--- 684,706 ----
  bugs, and refined Tripwire beyond the authors' expectations.  Special
  thanks go to:
  
!     Walker Aumann, Lance R. Bailey, Michael Barnett, David Barr,
!     Greg Black, Adrian P. van Bloois, J. Dean Brock, Kurt
!     Cockrum, John Cristy, Jim Duncan, David S. Goldberg,
!     Johannes Gronvall, Tom Gutnick, Michaela Harlander, Andreas
!     Haug, Bill Henderson, Jim Hendrick, Norman Hill, Paul Joslin,
!     Poul-Henning Kamp, Leslie Kordas, Simon Leinen, Philip Yzarn
!     de Louraille, Stephen Mahler, Fletcher Mattox, Ken McDonell,
!     Wes Morgan, Phil Moyer, Dan O'Neill, Joe Polcari, Phillip
!     Porch, Brad Powell, W. Purvis, Daniel Ray, Dean Rich, Bill
!     Romine, John P. Rouillard, Rich Salz, Christopher Samuel,
!     Pete Shipley., David W. Smith, Harlan Stenn, Margarita
!     Suarez, John G. Sutton, Tim Tessin, John Wagner, David
!     Wiseman, Irving Wolfe, Stephen M. Youndt
! 
!     Extra kudos go to Ken McDonnell and Rich Salz for "raising
! the bar" of code quality through their wonderfully meticulous and
! insightful code-reviews during the beta-test period.
  
      GeneK and Spaf want to apologize in advance to anyone who sent us
  patches, comments or configuration info and whose name doesn't appear
diff -c tripwire-1.0/include/patchlevel.h:1.1.1.1 tripwire-1.0/include/patchlevel.h:1.2
*** tripwire-1.0/include/patchlevel.h:1.1.1.1	Tue Dec  1 15:19:51 1992
--- tripwire-1.0/include/patchlevel.h	Tue Dec  1 15:19:51 1992
***************
*** 1,3 ****
! /* $Id: patchlevel.h,v 1.1.1.2 92/11/02 18:19:43 genek Exp $ */
  
! #define	PATCHLEVEL	1
--- 1,3 ----
! /* $Id: patchlevel.h,v 1.2 92/11/23 22:24:48 genek Exp $ */
  
! #define	PATCHLEVEL	2
diff -c tripwire-1.0/include/tripwire.h:1.1.1.1 tripwire-1.0/include/tripwire.h:1.3
*** tripwire-1.0/include/tripwire.h:1.1.1.1	Tue Dec  1 15:19:51 1992
--- tripwire-1.0/include/tripwire.h	Tue Dec  1 15:19:52 1992
***************
*** 1,4 ****
! /* $Id: tripwire.h,v 1.2 92/11/03 02:47:05 genek Exp $ */
  
  /************************************************************************
   *
--- 1,4 ----
! /* $Id: tripwire.h,v 1.3 92/11/24 03:18:52 genek Exp $ */
  
  /************************************************************************
   *
***************
*** 37,43 ****
  
  /* version information */
  
! #define VERSION_NUM 	"1.0"
  #define DB_VERSION_NUM	1
  
  /* For signature routines prototypes: */
--- 37,43 ----
  
  /* version information */
  
! #define VERSION_NUM 	"1.0.1"
  #define DB_VERSION_NUM	1
  
  /* For signature routines prototypes: */
***************
*** 215,221 ****
  void direntry_print P_((char *name, struct stat statbuf, int mode));
  /* preen.c */
  void preen_gather P_((void));
! void preen_update P_((char *entry));
  /* preen.interp.c */
  void preen_interp P_((FILE *fpin));
  /* preen.report.c */
--- 215,221 ----
  void direntry_print P_((char *name, struct stat statbuf, int mode));
  /* preen.c */
  void preen_gather P_((void));
! void preen_update P_((char **ppentry, int num));
  /* preen.interp.c */
  void preen_interp P_((FILE *fpin));
  /* preen.report.c */
diff -c tripwire-1.0/man/Makefile:1.1.1.1 tripwire-1.0/man/Makefile:1.2
*** tripwire-1.0/man/Makefile:1.1.1.1	Tue Dec  1 15:19:53 1992
--- tripwire-1.0/man/Makefile	Tue Dec  1 15:19:53 1992
***************
*** 1,6 ****
  # Makefile for man pages
  
! all:
  	$(INSTALL) -m 644 sigfetch.8 $(MANDIR)/man8
  	$(INSTALL) -m 644 tripwire.8 $(MANDIR)/man8
  	$(INSTALL) -m 644 tw.config.5 $(MANDIR)/man5
--- 1,8 ----
  # Makefile for man pages
  
! all:	install
! 
! install:
  	$(INSTALL) -m 644 sigfetch.8 $(MANDIR)/man8
  	$(INSTALL) -m 644 tripwire.8 $(MANDIR)/man8
  	$(INSTALL) -m 644 tw.config.5 $(MANDIR)/man5
diff -c tripwire-1.0/man/tripwire.8:1.1.1.1 tripwire-1.0/man/tripwire.8:1.3
*** tripwire-1.0/man/tripwire.8:1.1.1.1	Tue Dec  1 15:19:54 1992
--- tripwire-1.0/man/tripwire.8	Tue Dec  1 15:19:54 1992
***************
*** 1,4 ****
! .\" $Id: tripwire.8,v 1.2 92/11/03 02:34:17 genek Exp $
  .\"
  .TH TRIPWIRE 8 "October 14, 1992"
  .SH NAME
--- 1,4 ----
! .\" $Id: tripwire.8,v 1.3 92/11/24 03:18:54 genek Exp $
  .\"
  .TH TRIPWIRE 8 "October 14, 1992"
  .SH NAME
***************
*** 53,59 ****
  Database Generation mode.  Creates the database which is used for
  all subsequent Integrity Checking runs.
  .TP
! .B -update entry
  Database Update mode.  This mode updates the specified \fIentry\fP
  in the database.  If \fIentry\fP is a file, only that file is
  updates.  If \fIentry\fP is a directory, the directory and all of
--- 53,59 ----
  Database Generation mode.  Creates the database which is used for
  all subsequent Integrity Checking runs.
  .TP
! .B -update entry/file ...
  Database Update mode.  This mode updates the specified \fIentry\fP
  in the database.  If \fIentry\fP is a file, only that file is
  updates.  If \fIentry\fP is a directory, the directory and all of
***************
*** 90,96 ****
  expected\fP} pairs for each changed file.
  .TP
  .B \-v
! Verbose mode.
  .TP
  .B \-version
  Prints out version information.
--- 90,97 ----
  expected\fP} pairs for each changed file.
  .TP
  .B \-v
! Verbose mode.  Prints out filenames as they are being scanned
! during signature computation.
  .TP
  .B \-version
  Prints out version information.
diff -c tripwire-1.0/src/Makefile:1.1.1.1 tripwire-1.0/src/Makefile:1.3
*** tripwire-1.0/src/Makefile:1.1.1.1	Tue Dec  1 15:20:01 1992
--- tripwire-1.0/src/Makefile	Tue Dec  1 15:20:02 1992
***************
*** 1,4 ****
! # $Id: Makefile,v 1.2 92/11/03 02:35:09 genek Exp $
  #
  # 	Tripwire build
  #
--- 1,4 ----
! # $Id: Makefile,v 1.3 92/12/01 14:52:11 genek Exp $
  #
  # 	Tripwire build
  #
***************
*** 46,52 ****
  all:	tripwire sigfetch
  
  tripwire:	$(P) $(OFILES) 
! 	$(CC) $(CFLAGS) -o $@ $(OFILES) $(LIBS)
  
  $(OSIG1):	../include/byteorder.h
  	(cd $(SIG1DIR); make CC="$(CC)" CFLAGS="$(CFLAGS) -I. -I..")
--- 46,52 ----
  all:	tripwire sigfetch
  
  tripwire:	$(P) $(OFILES) 
! 	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(OFILES) $(LIBS)
  
  $(OSIG1):	../include/byteorder.h
  	(cd $(SIG1DIR); make CC="$(CC)" CFLAGS="$(CFLAGS) -I. -I..")
***************
*** 69,75 ****
  # need $(LDFLAGS) because this may interact with the way nullsig.o and
  # utils.o were compiled
  sigfetch:	$(OSIGS) sigfetch.c
! 	$(CC) $(CFLAGS) -o sigfetch sigfetch.c $(OSIGS) nullsig.o utils.o $(LIBS)
  	
  config.lex.c:	config.pre.l
  	$(LEX) config.pre.l
--- 69,75 ----
  # need $(LDFLAGS) because this may interact with the way nullsig.o and
  # utils.o were compiled
  sigfetch:	$(OSIGS) sigfetch.c
! 	$(CC) $(CFLAGS) $(LDFLAGS) -o sigfetch sigfetch.c $(OSIGS) nullsig.o utils.o $(LIBS)
  	
  config.lex.c:	config.pre.l
  	$(LEX) config.pre.l
***************
*** 84,90 ****
  	$(CC) $(CFLAGS) -c $<
  
  install:	tripwire
! 	$(INSTALL) tripwire $(TARGET)
  
  clean:
  	-rm -f $(OFILES) config.lex.c config.pre.c y.tab.c lex.yy.c  
--- 84,90 ----
  	$(CC) $(CFLAGS) -c $<
  
  install:	tripwire
! 	$(INSTALL) tripwire $(DESTDIR)
  
  clean:
  	-rm -f $(OFILES) config.lex.c config.pre.c y.tab.c lex.yy.c  
diff -c tripwire-1.0/src/config.parse.c:1.1.1.1 tripwire-1.0/src/config.parse.c:1.3
*** tripwire-1.0/src/config.parse.c:1.1.1.1	Tue Dec  1 15:20:02 1992
--- tripwire-1.0/src/config.parse.c	Tue Dec  1 15:20:02 1992
***************
*** 1,5 ****
  #ifndef lint
! static char rcsid[] = "$Id: config.parse.c,v 1.2 92/11/03 02:43:33 genek Exp $";
  #endif
  
  /*
--- 1,5 ----
  #ifndef lint
! static char rcsid[] = "$Id: config.parse.c,v 1.3 92/11/23 22:15:18 genek Exp $";
  #endif
  
  /*
***************
*** 119,125 ****
  	fpin = stdin;
      }
      else if ((fpin = fopen(configfile, "r")) == NULL) {
! 	perror("configfile_read: fopen()");
  	exit(1);
      }
  
--- 119,127 ----
  	fpin = stdin;
      }
      else if ((fpin = fopen(configfile, "r")) == NULL) {
! 	char err[1024];
! 	sprintf(err, "tripwire: Couldn't open config file %s", configfile);
! 	perror(err);
  	exit(1);
      }
  
diff -c tripwire-1.0/src/config.pre.y:1.1.1.1 tripwire-1.0/src/config.pre.y:1.2
*** tripwire-1.0/src/config.pre.y:1.1.1.1	Tue Dec  1 15:20:03 1992
--- tripwire-1.0/src/config.pre.y	Tue Dec  1 15:20:03 1992
***************
*** 22,28 ****
  %token ESCCHAR
  
  %{
! /* $Id: config.pre.y,v 1.2 92/11/03 04:49:41 genek Exp $ */
  
  /*
   * config.y
--- 22,28 ----
  %token ESCCHAR
  
  %{
! /* $Id: config.pre.y,v 1.2 92/11/23 22:15:21 genek Exp $ */
  
  /*
   * config.y
***************
*** 401,407 ****
  
  /* counters odd behaviour of flex -- Simon Leinen */
  #ifdef yywrap
! # undef yyrap
  #endif
  
  yywrap()
--- 401,407 ----
  
  /* counters odd behaviour of flex -- Simon Leinen */
  #ifdef yywrap
! # undef yywrap
  #endif
  
  yywrap()
diff -c tripwire-1.0/src/dbase.build.c:1.1.1.1 tripwire-1.0/src/dbase.build.c:1.4
*** tripwire-1.0/src/dbase.build.c:1.1.1.1	Tue Dec  1 15:20:04 1992
--- tripwire-1.0/src/dbase.build.c	Tue Dec  1 15:20:04 1992
***************
*** 1,5 ****
  #ifndef lint
! static char rcsid[] = "$Id: dbase.build.c,v 1.3 92/11/03 02:43:40 genek Exp $";
  #endif
  
  /*
--- 1,5 ----
  #ifndef lint
! static char rcsid[] = "$Id: dbase.build.c,v 1.4 92/11/24 03:18:57 genek Exp $";
  #endif
  
  /*
***************
*** 60,69 ****
  char *mktemp();
  static void database_record_write();
  
- #ifndef L_tmpnam
- # define L_tmpnam (unsigned int) MAXPATHLEN
- #endif
- 
  char backupfile[MAXPATHLEN];
  
  /*
--- 60,65 ----
***************
*** 115,121 ****
      oldumask = umask(077);
  
      if (mode == DBASE_TEMPORARY) {
! 	char *tmpfilename = (char *) malloc(L_tmpnam);
  	(void) strcpy(tmpfilename, TEMPFILE_TEMPLATE);
  
  	if ((char *) mktemp(tmpfilename) == NULL)
--- 111,119 ----
      oldumask = umask(077);
  
      if (mode == DBASE_TEMPORARY) {
! 	char *tmpfilename = (char *) malloc(strlen(TEMPFILE_TEMPLATE)+1);
! 	if (tmpfilename == NULL)
! 	    die_with_err("malloc() failed in database_build", (char *) NULL);
  	(void) strcpy(tmpfilename, TEMPFILE_TEMPLATE);
  
  	if ((char *) mktemp(tmpfilename) == NULL)
***************
*** 134,140 ****
  	char backup[MAXPATHLEN];
          register int ctemp;
  
! 	sprintf(backup, "%s.old", database_file);
  
  	/* make sure we stay underneath maximum file length */
  
--- 132,141 ----
  	char backup[MAXPATHLEN];
          register int ctemp;
  
! 	/* we hard code this, since we always want the new diretory placed
! 	 * relative to our position 
! 	 */
! 	sprintf(backupfile, "%s.old", database_file);
  
  	/* make sure we stay underneath maximum file length */
  
***************
*** 144,153 ****
  	    (void) strcpy(backup + (MAXNAMLEN - 4), ".old");
  	}
  	/* so we can reference it later */
! 	(void) strcpy(backupfile, backup);  /* strlen(./Databases/) == 12 */
  
  	if ((fpin = fopen(database, "r")) == NULL)
! 	    die_with_err("database_build: Couldn't open database `%s'!\n", database);
  
  	else if ((fpout = fopen(backup, "w")) == NULL)
  	    die_with_err("Couldn't open '%s'!\n", backup);
--- 145,156 ----
  	    (void) strcpy(backup + (MAXNAMLEN - 4), ".old");
  	}
  	/* so we can reference it later */
! 	(void) sprintf(backup, "./databases/%s", backupfile);
! 	/* (void) strcpy(backupfile, backup);  strlen(./Databases/) == 12 */
  
  	if ((fpin = fopen(database, "r")) == NULL)
! 	    die_with_err("database_build: Couldn't open database `%s'!\n", 
! 	    		database);
  
  	else if ((fpout = fopen(backup, "w")) == NULL)
  	    die_with_err("Couldn't open '%s'!\n", backup);
diff -c tripwire-1.0/src/main.c:1.1.1.1 tripwire-1.0/src/main.c:1.3
*** tripwire-1.0/src/main.c:1.1.1.1	Tue Dec  1 15:20:04 1992
--- tripwire-1.0/src/main.c	Tue Dec  1 15:20:05 1992
***************
*** 1,5 ****
  #ifndef lint
! static char rcsid[] = "$Id: main.c,v 1.3 92/11/03 02:43:52 genek Exp $";
  #endif
  
  /************************************************************************
--- 1,5 ----
  #ifndef lint
! static char rcsid[] = "$Id: main.c,v 1.3 92/11/24 09:52:23 genek Exp $";
  #endif
  
  /************************************************************************
***************
*** 117,123 ****
  int verbosity = 0;
  static int dbaseinit = 0;
  int printhex = 0;
! static char *updateentry = NULL;
  int quiet = 0;
  int printpreprocess = 0;
  char *specified_dbasefile = NULL;
--- 117,124 ----
  int verbosity = 0;
  static int dbaseinit = 0;
  int printhex = 0;
! static char **pp_updateentries = NULL;
! static int numupdateentries = 0;
  int quiet = 0;
  int printpreprocess = 0;
  char *specified_dbasefile = NULL;
***************
*** 220,226 ****
  	    if ((pc = argv[++i]) == NULL) {
  		usage();
  	    }
! 	    updateentry = pc;
  	    continue;
  	}
  	/* specify database file */
--- 221,235 ----
  	    if ((pc = argv[++i]) == NULL) {
  		usage();
  	    }
! 	    /* exhaust the argument list */
! 	    while (pc) {
! 		if ((pp_updateentries = (char **) realloc(pp_updateentries, 
! 			(numupdateentries+1) * sizeof(char *))) == NULL) {
! 		    die_with_err("main: realloc() failed!\n", NULL);
! 		}
! 		pp_updateentries[numupdateentries++] = pc;
! 		pc = argv[++i];
! 	    }
  	    continue;
  	}
  	/* specify database file */
***************
*** 309,314 ****
--- 318,336 ----
      (void) strcpy(mask, defaultignore);
      ignore_configvec_to_dvec(mask);
      defaultignore_parsed = mask;
+     
+     /* if we are creating a database, make sure the database troving directory
+      * exist.
+      */
+ #define DATABASE_REPOSITORY "./databases"
+ 
+     if (dbaseinit || numupdateentries > 0) {
+ 	if (mkdir(DATABASE_REPOSITORY, 0777) >= 0) {
+ 	    fprintf(stderr, "### Warning:\tcreating %s directory!\n",
+ 				DATABASE_REPOSITORY);
+ 	    fprintf(stderr, "###\n");
+ 	}
+     }
  
      /* are we in database generation mode? */
      if (dbaseinit) {
***************
*** 319,330 ****
  	/* place database in ./databases */
  	database_path = newpath;
  
- 	if (mkdir(newpath, 0777) >= 0) {
- 	    fprintf(stderr, "### Warning:\tcreating %s directory!\n",
- 				newpath);
- 	    fprintf(stderr, "###\n");
- 	}
- 
  	/* generate the database */
  	configfile_read(&filelist, &dbase_entry_list);
  	database_build(&filelist, DBASE_PERMANENT, &dbase_entry_list);
--- 341,346 ----
***************
*** 364,371 ****
      }
  
      /* are we in database update mode? */
!     if (updateentry) {
! 	preen_update(updateentry);
  	exit(0);
      }
  
--- 380,387 ----
      }
  
      /* are we in database update mode? */
!     if (numupdateentries) {
! 	preen_update(pp_updateentries, numupdateentries);
  	exit(0);
      }
  
diff -c tripwire-1.0/src/preen.c:1.1.1.1 tripwire-1.0/src/preen.c:1.3
*** tripwire-1.0/src/preen.c:1.1.1.1	Tue Dec  1 15:20:05 1992
--- tripwire-1.0/src/preen.c	Tue Dec  1 15:20:05 1992
***************
*** 1,5 ****
  #ifndef lint
! static char rcsid[] = "$Id: preen.c,v 1.2 92/11/03 02:43:57 genek Exp $";
  #endif
  
  /*
--- 1,5 ----
  #ifndef lint
! static char rcsid[] = "$Id: preen.c,v 1.3 92/11/24 03:19:00 genek Exp $";
  #endif
  
  /*
***************
*** 83,92 ****
  }
  
  /*
!  * preen_update(char *entry)
   *
   *	build the filelist from tw.config file.
!  *	check if (updateentry) is an entry
   *		if it is, update all entries with the same entrynum
   *		else if (updateentry) exists
   *			if so, update, w/same entrynum
--- 83,92 ----
  }
  
  /*
!  * preen_update(char **ppentries, int numentries)
   *
   *	build the filelist from tw.config file.
!  *	check if each (updateentry) in the (ppentries) vector is an entry
   *		if it is, update all entries with the same entrynum
   *		else if (updateentry) exists
   *			if so, update, w/same entrynum
***************
*** 94,103 ****
   */
  
  void
! preen_update(entry)
!     char *entry;
  {
      struct list *entry_list = (struct list *) NULL;
  
      /* build the filelist from the preen.config file
       * 		it will create the linked list of files
--- 94,106 ----
   */
  
  void
! preen_update(ppentries, numentries)
!     char **ppentries;
!     int numentries;
  {
      struct list *entry_list = (struct list *) NULL;
+     char *entry;
+     int i, numskipped = 0;		/* number of entries not found */
  
      /* build the filelist from the preen.config file
       * 		it will create the linked list of files
***************
*** 107,143 ****
      /* read in the old database */
      preen_database_load();
  
!     /* is (updateentry) an entry */
!     if (list_isthere(entry, &entry_list)) {
! 	char s[MAXPATHLEN];
! 	int entrynum;
! 
! 	/* get entry number */
! 	(void) strcpy(s, list_lookup(entry, &entry_list));
! 	if (sscanf(s, "%d", &entrynum) != 1) {
! 	    fprintf(stderr, "preen_update: sscanf() parse error!\n");
! 	    exit(1);
! 	}
  
! 	/* mark all files with this entry number as FLAG_UPDATE */
! 	database_update_markentries(&filelist, entrynum);
  
      }
!     /* is there even such a file? */
!     else if (list_isthere(entry, &preenlist) == 0) {
! 	fprintf(stderr, "tripwire: update couldn't find entry '%s'! Aborting...\n", entry);
  	exit(1);
      }
-     /* entry is just a regular file */
-     else {
- 	/* make sure it's in our database */
- 	if (list_isthere(entry, &filelist) < 0) {
- 	    fprintf(stderr, "preen_update: entry `%s' not found!\n",
- 				entry);
- 	    exit(1);
- 	}
- 	list_setflag(entry, FLAG_UPDATE, &filelist);
-     }
  
      /* preen ourselves:
       * 		build a temporary database, then check for diffs
--- 110,156 ----
      /* read in the old database */
      preen_database_load();
  
!     /* iterate through the entries */
!     for (i = 0; entry = ppentries[i], i < numentries; i++) {
! 	/* is (updateentry) an entry */
! 	if (list_isthere(entry, &entry_list)) {
! 	    char s[MAXPATHLEN];
! 	    int entrynum;
! 
! 	    /* get entry number */
! 	    (void) strcpy(s, list_lookup(entry, &entry_list));
! 	    if (sscanf(s, "%d", &entrynum) != 1) {
! 		fprintf(stderr, "preen_update: sscanf() parse error!\n");
! 		exit(1);
! 	    }
  
! 	    /* mark all files with this entry number as FLAG_UPDATE */
! 	    database_update_markentries(&filelist, entrynum);
  
+ 	}
+ 	/* is there even such a file? */
+ 	else if (list_isthere(entry, &preenlist) == 0) {
+ 	    fprintf(stderr, "tripwire: update couldn't find entry '%s'!  Skipping...\n", entry);
+ 	    numskipped++;
+ 	    continue;
+ 	}
+ 	/* entry is just a regular file */
+ 	else {
+ 	    /* make sure it's in our database */
+ 	    if (list_isthere(entry, &filelist) < 0) {
+ 		fprintf(stderr, "preen_update: entry `%s' not found!\n",
+ 				    entry);
+ 		exit(1);
+ 	    }
+ 	    list_setflag(entry, FLAG_UPDATE, &filelist);
+ 	}
      }
!     
!     /* did we skip all the files, thus a no-op? */
!     if (numskipped == numentries) {
!         printf("Couldn't find any update entries, so database remains unchanged!\n");
  	exit(1);
      }
  
      /* preen ourselves:
       * 		build a temporary database, then check for diffs
***************
*** 148,154 ****
      fputs("###\n", stderr);
      fprintf(stderr,
  "### Warning:   Old database file moved to `%s'\n", backupfile);
!     fputs("###            in ./Databases.\n", stderr);
  	exit(0);
  
      return;
--- 161,167 ----
      fputs("###\n", stderr);
      fprintf(stderr,
  "### Warning:   Old database file moved to `%s'\n", backupfile);
!     fputs("###            in ./databases.\n", stderr);
  	exit(0);
  
      return;
diff -c tripwire-1.0/tests/Makefile:1.1.1.1 tripwire-1.0/tests/Makefile:1.2
*** tripwire-1.0/tests/Makefile:1.1.1.1	Tue Dec  1 15:20:07 1992
--- tripwire-1.0/tests/Makefile	Tue Dec  1 15:20:07 1992
***************
*** 1,8 ****
! # $Id: Makefile,v 1.1.1.2 92/11/02 18:23:47 genek Exp $
  #
  # 	Tripwire test
  
! DIST=tripwire-0.92
  
  all:	../src/tripwire
  	@HOST=`echo $(HOSTNAME)`; \
--- 1,8 ----
! # $Id: Makefile,v 1.2 92/11/23 22:15:26 genek Exp $
  #
  # 	Tripwire test
  
! DIST=tripwire-1.0
  
  all:	../src/tripwire
  	@HOST=`echo $(HOSTNAME)`; \
diff -c tripwire-1.0/tests/tw.db_TEST:1.1.1.1 tripwire-1.0/tests/tw.db_TEST:1.4
*** tripwire-1.0/tests/tw.db_TEST:1.1.1.1	Tue Dec  1 16:07:25 1992
--- tripwire-1.0/tests/tw.db_TEST	Tue Dec  1 16:07:25 1992
***************
*** 1,4 ****
! # Generated by Tripwire, version 1.0 on Tue Nov  3 16:15:43 1992
  @@dbaseversion 1
  /tmp/genek/tripwire-1.0 0 ....5P 40700 51200 12 31018 0 512 .exijy .exiiT .exijt 0 0 0 0 0 0 0 0 0 0 
  /tmp/genek/tripwire-1.0/aux 0 ....5P 40700 14336 2 31018 0 512 .exijv .exiiU .exijR 0 0 0 0 0 0 0 0 0 0 
--- 1,4 ----
! # Generated by Tripwire, version 1.0.1 on Tue Dec  1 16:25:33 1992
  @@dbaseversion 1
  /tmp/genek/tripwire-1.0 0 ....5P 40700 51200 12 31018 0 512 .exijy .exiiT .exijt 0 0 0 0 0 0 0 0 0 0 
  /tmp/genek/tripwire-1.0/aux 0 ....5P 40700 14336 2 31018 0 512 .exijv .exiiU .exijR 0 0 0 0 0 0 0 0 0 0 
***************
*** 9,20 ****
  /tmp/genek/tripwire-1.0/aux/types.sh 0 ....5P 100700 14347 1 31018 0 1153 .exijR .exihT .exijR 0 01HqdM1aPed4.oqIS50odnSP 01FbKv/ndLwY0pwCB2.5bIbl .c5V8R .../Ay .WE94a0GfAFi0kk0gc0TzQAa 1gWYmJ1SI4wk0N5yqF0kA0Vb 0 0 0 
  /tmp/genek/tripwire-1.0/lib 0 ....5P 40700 43008 2 31018 0 512 .exijv .exiiV .exijR 0 0 0 0 0 0 0 0 0 0 
  /tmp/genek/tripwire-1.0/lib/tw.config 0 ....5P 100600 43018 1 31018 0 4132 .exijR .exihU .exijR 0 0N20tV/XBLYJ.es9y10QbeRL 0heWH01g/3vy.l3OP91dmGtO 0JcCMX ...9g5 .18jtG1EQ7j/0CA0ZG/r96kR /891/S/27/fl1hfhwu.JSfUB 0 0 0 
! /tmp/genek/tripwire-1.0/README 0 ....5P 100600 51203 1 31018 0 29570 .exijR .exihV .exijR 0 /NfOYR/F4ntU1EhLVu1cymnD .PiCkR0mRUjC/yB5Or.UwjpK /Nrku4 ...DS2 /m4Jsd14Q4Fy.BO0BX0UbLYQ /vouxa1GoRdA1gPlvO.0DP6s 0 0 0 
  /tmp/genek/tripwire-1.0/databases 2 ../zzz 40700 51205 2 31018 0 24 .exijy .exiih .exijS 0 0 0 0 0 0 0 0 0 0 
! /tmp/genek/tripwire-1.0/Ported 0 ....5P 100600 51207 1 31018 0 6820 .exijS .exihW .exijS 0 0n00Dc/z3/bC13fCU1/hZ33n 0TU5tQ.0KyW71iZJzf/8V3Zd 1Kys.i ...3xx .3FOlG1nl3Gz1.P/fP1d6kOK /xzTLU1AjUPR.4obJr.07j2J 0 0 0 
  /tmp/genek/tripwire-1.0/TODO 0 ....5P 100600 51208 1 31018 0 485 .exijS .exihW .exijS 0 00Zlic.7DcJx/XufDO1YrL2f .fVfVm18VhZm0KOHj11hUNoT .Q2Zsl ...Dea /Vz5tC.8.HZV1OoFX0.R295U 1EieKB0tOvXm1BGoSS0oB.p0 0 0 0 
! /tmp/genek/tripwire-1.0/Changelog 0 ....5P 100600 51209 1 31018 0 6891 .exijS .exihX .exijS 0 .lYmGK..8Kqj.L41Oj.1QIa7 0796ZX0NFZKH0HQ44q.Ovl8a .UyZnL ...6kP 1WunNg./8ntj/dUxvx.EFjvr 0TUa7m.B0CT81hT9fF.4a1pD 0 0 0 
! /tmp/genek/tripwire-1.0/FAQ 0 ....5P 100600 51210 1 31018 0 2127 .exijS .exihX .exijS 0 1o8lmk.9gnty1nnMkt0C1tMe 0IvgUc0nsFfc/wptS115jSWu 01Q5AY ...BTN 1jIqXR/zbQsE1xWt3W.GREV4 /q8ime/3M6.F.pNFvm1MJWzm 0 0 0 
  /tmp/genek/tripwire-1.0/configs 0 ....5P 40700 4096 2 31018 0 1024 .exijw .exiiV .exijX 0 0 0 0 0 0 0 0 0 0 
  /tmp/genek/tripwire-1.0/configs/conf-aix.h 0 ....5P 100600 4098 1 31018 0 985 .exijS .exihY .exijS 0 0EtLXL/9qv7m/PoBGs1kjsQv 0NrrKp0Usuda.RCHYa/V3MaS 193CRp ...2vB /iYPnJ0jofjD.ID7w30lx4Ir /XO4WS1mPj/l0xGOQ4.xc9T2 0 0 0 
  /tmp/genek/tripwire-1.0/configs/conf-aux3.h 0 ....5P 100600 4107 1 31018 0 1014 .exijS .exihY .exijS 0 0sOrCj.CY2eV1.oBer/O0t3n .KngT0/juynf/L4ITG1XxQDu 0.OjHe ...8wH 1kaLvJ/B4fU9.UB/9z/EtxZs 0JcXsZ/GngLa.LNuze1CypHb 0 0 0 
--- 9,20 ----
  /tmp/genek/tripwire-1.0/aux/types.sh 0 ....5P 100700 14347 1 31018 0 1153 .exijR .exihT .exijR 0 01HqdM1aPed4.oqIS50odnSP 01FbKv/ndLwY0pwCB2.5bIbl .c5V8R .../Ay .WE94a0GfAFi0kk0gc0TzQAa 1gWYmJ1SI4wk0N5yqF0kA0Vb 0 0 0 
  /tmp/genek/tripwire-1.0/lib 0 ....5P 40700 43008 2 31018 0 512 .exijv .exiiV .exijR 0 0 0 0 0 0 0 0 0 0 
  /tmp/genek/tripwire-1.0/lib/tw.config 0 ....5P 100600 43018 1 31018 0 4132 .exijR .exihU .exijR 0 0N20tV/XBLYJ.es9y10QbeRL 0heWH01g/3vy.l3OP91dmGtO 0JcCMX ...9g5 .18jtG1EQ7j/0CA0ZG/r96kR /891/S/27/fl1hfhwu.JSfUB 0 0 0 
! /tmp/genek/tripwire-1.0/README 0 ....5P 100600 45 1 4001 0 29899 .f4xQo .f4xPb .f4xPb 0 1hJM7u1BCvSO1vNVOY.pQsvT /JN0ZX/4oN.F/eMolN/ULiLU .mNB78 ...3ir 0liT2r0SY0/D.xR3Qj/FV0H1 0ooV8G0pnaG0.tR26v/EHkxa 0 0 0 
  /tmp/genek/tripwire-1.0/databases 2 ../zzz 40700 51205 2 31018 0 24 .exijy .exiih .exijS 0 0 0 0 0 0 0 0 0 0 
! /tmp/genek/tripwire-1.0/Ported 0 ....5P 100600 40 1 4001 0 6868 .f4xQo .f4xPa .f4xPa 0 .P2LMF1t7ocD0oergX.FAE01 0zTn8A1HWlWw/I./kZ.w8nN9 /RWqhp ...8w5 .4S1AL0CCZ5C0995XV.apPRk 1Z2HEr15TBnN0O08fq/F6YVs 0 0 0 
  /tmp/genek/tripwire-1.0/TODO 0 ....5P 100600 51208 1 31018 0 485 .exijS .exihW .exijS 0 00Zlic.7DcJx/XufDO1YrL2f .fVfVm18VhZm0KOHj11hUNoT .Q2Zsl ...Dea /Vz5tC.8.HZV1OoFX0.R295U 1EieKB0tOvXm1BGoSS0oB.p0 0 0 0 
! /tmp/genek/tripwire-1.0/Changelog 0 ....5P 100600 75 1 4001 0 7433 .f4xQp .f4xPa .f4xPa 0 0dPnHX0NjOt3./20FW0bm570 .jIe.41Nko/B/po1hX1V9jmS /LXO9n ...380 /5MqCo.jfPOv0TLkKh01uktN 1cY7Gs1/HF8K0MUp.A0EM3dB 0 0 0 
! /tmp/genek/tripwire-1.0/FAQ 0 ....5P 100600 72 1 4001 0 2683 .f4xQp .f4xPa .f4xPa 0 1wwQd21NSUkp0PMxhY0Nrg5R .HA/rf/tCFi3/pLqJY0REoea 0m4Y5i ...693 .WQ.A20r8V6K1xUVeJ1ZSC1h 0OloOh.I0hmG/cXhGb//Y84P 0 0 0 
  /tmp/genek/tripwire-1.0/configs 0 ....5P 40700 4096 2 31018 0 1024 .exijw .exiiV .exijX 0 0 0 0 0 0 0 0 0 0 
  /tmp/genek/tripwire-1.0/configs/conf-aix.h 0 ....5P 100600 4098 1 31018 0 985 .exijS .exihY .exijS 0 0EtLXL/9qv7m/PoBGs1kjsQv 0NrrKp0Usuda.RCHYa/V3MaS 193CRp ...2vB /iYPnJ0jofjD.ID7w30lx4Ir /XO4WS1mPj/l0xGOQ4.xc9T2 0 0 0 
  /tmp/genek/tripwire-1.0/configs/conf-aux3.h 0 ....5P 100600 4107 1 31018 0 1014 .exijS .exihY .exijS 0 0sOrCj.CY2eV1.oBer/O0t3n .KngT0/juynf/L4ITG1XxQDu 0.OjHe ...8wH 1kaLvJ/B4fU9.UB/9z/EtxZs 0JcXsZ/GngLa.LNuze1CypHb 0 0 0 
***************
*** 52,64 ****
  /tmp/genek/tripwire-1.0/contrib/TRIPWIRE 0 ....5P 100700 10259 1 31018 0 569 .exijY .exihg .exijY 0 1MRglJ1D5rAm/InVH0.Up6yI 1Vgsq4.qlQq/1R5zyt0jNh18 .8mN9G ...09M .Ray/x/le5jX.oj61E0CfBQV 1pk04a0yY3WQ1UHm0h.Tui/y 0 0 0 
  /tmp/genek/tripwire-1.0/contrib/tripwire.chk 0 ....5P 100700 10260 1 31018 0 458 .exijY .exihg .exijY 0 .Jc8rG.LRBLZ/0KXw8/6GNs8 0US0NP/chto81XbgYk.xcZMk .cKh.y ...28b .D.0Rh/ySAnm/iOMcy1jQ2b6 09kIye1FjpNd.M7uh6/cDGL0 0 0 0 
  /tmp/genek/tripwire-1.0/include 0 ....5P 40700 14349 2 31018 0 512 .exijx .exiih .exija 0 0 0 0 0 0 0 0 0 0 
! /tmp/genek/tripwire-1.0/include/patchlevel.h 0 ....5P 100600 14357 1 31018 0 86 .exijZ .exihh .exijZ 0 .gnkSo0SYIQW0UlEG2/el0bp 0S5jn90w9F1n.RpxTE0AGILb /s3HgJ ...09g /A5bHL1EB5ZT1IzB0D1jOCEJ 0KEu381fd23M0GauJj.LXCiS 0 0 0 
  /tmp/genek/tripwire-1.0/include/list.h 0 ....5P 100600 14383 1 31018 0 1541 .exijZ .exihi .exijZ 0 /fF4He0M2dMI/3TqcG.M17mC 1g3hMU1umN62.ZzT.u.qlaYz /LVjrG ...1YI /qxa4w0j5lD11KtVnQ1HCwHL 1H3cIy1BDI6S1byWLz1oguWX 0 0 0 
! /tmp/genek/tripwire-1.0/include/tripwire.h 0 ....5P 100600 14384 1 31018 0 7233 .exija .exihi .exija 0 .qDxAV0yckmH0E33Qc.IjXXJ 0B89LT.t7kft.6q7Xf/VPOkM 0K11Ez ...3LG 0Pzggy0EWd5O.KTLr50WhQm1 /68Vn8/6XxiI0wQWth0X0Qy/ 0 0 0 
  /tmp/genek/tripwire-1.0/include/sigs.h 0 ....5P 100600 14385 1 31018 0 613 .exija .exihi .exija 0 /hAfN..MjMmK.NVFb81dGnTF 1r91TP/z3oZc.9voWX1.eNep .EHxxi ...BqE .nOHS/0SOUgn.LUtCg.NweQw 1kJL621DCHJd0szgo5/mrU7m 0 0 0 
  /tmp/genek/tripwire-1.0/man 0 ....5P 40700 16384 2 31018 0 512 .exijx .exiiX .exijb 0 0 0 0 0 0 0 0 0 0 
! /tmp/genek/tripwire-1.0/man/tripwire.8 0 ....5P 100600 16385 1 31018 0 7596 .exija .exihl .exija 0 08tWdo.QwqBG1kqYIt/q5TQ7 0BmShx/kgIeS/PT5uX11HUH9 .qBXWe ...3Ya .Mkifa.vmThE19eQNf15yxIB .iEQZ7/mSBeL0DicwM02t97R 0 0 0 
! /tmp/genek/tripwire-1.0/man/Makefile 0 ....5P 100600 16390 1 31018 0 176 .exija .exihl .exija 0 .bfCp//AURO90ffQo8/5SBcm .V.UUs0WlyP01.yWLU.9.cqa 0vIvWe ...C5z 0xUP4D.895hY03Y2MD//sWqc 1cea5P0lQXf5.2Uw1g.7G1Lb 0 0 0 
  /tmp/genek/tripwire-1.0/man/sigfetch.8 0 ....5P 100600 16391 1 31018 0 761 .exijb .exihl .exijb 0 0tb3ER0gMJQK.a8Og5/3NAJJ .KInnp1NmIre0HF7gu/l3wq2 1Up3BX ...C6M 19lWZM15GAMY01.A0x0A1DVw .nBhYJ0sPjKC0WtFbp.RDTuQ 0 0 0 
  /tmp/genek/tripwire-1.0/man/tw.config.5 0 ....5P 100600 16392 1 31018 0 7470 .exijb .exihl .exijb 0 /ILTFM/LMeuo0veAt11S7MbW /mL9Ge.PLEsX/GkEd.0kPUp8 1LOzTD ...BzV 0OpEWi/pEvUf15ajTw.rh8F2 1ZyUF/1z1ABW/gIzeW/Skccs 0 0 0 
  /tmp/genek/tripwire-1.0/sigs 0 ....5P 40700 18432 8 31018 0 512 .exijy .exiiY .exijn 0 0 0 0 0 0 0 0 0 0 
--- 52,64 ----
  /tmp/genek/tripwire-1.0/contrib/TRIPWIRE 0 ....5P 100700 10259 1 31018 0 569 .exijY .exihg .exijY 0 1MRglJ1D5rAm/InVH0.Up6yI 1Vgsq4.qlQq/1R5zyt0jNh18 .8mN9G ...09M .Ray/x/le5jX.oj61E0CfBQV 1pk04a0yY3WQ1UHm0h.Tui/y 0 0 0 
  /tmp/genek/tripwire-1.0/contrib/tripwire.chk 0 ....5P 100700 10260 1 31018 0 458 .exijY .exihg .exijY 0 .Jc8rG.LRBLZ/0KXw8/6GNs8 0US0NP/chto81XbgYk.xcZMk .cKh.y ...28b .D.0Rh/ySAnm/iOMcy1jQ2b6 09kIye1FjpNd.M7uh6/cDGL0 0 0 0 
  /tmp/genek/tripwire-1.0/include 0 ....5P 40700 14349 2 31018 0 512 .exijx .exiih .exija 0 0 0 0 0 0 0 0 0 0 
! /tmp/genek/tripwire-1.0/include/patchlevel.h 0 ....5P 100600 46 1 4001 0 82 .f4xQu .f4xPb .f4xPb 0 17C7eU.jJXZW0hic6k1d60Vn .Bq19K05ryrL/3SZVQ1Jmoou 0sWHig ...95l .m2lYc1P5h8o18Kw8c0OSsrF .LTAy/0clgrA0gMgli0Ft.8K 0 0 0 
  /tmp/genek/tripwire-1.0/include/list.h 0 ....5P 100600 14383 1 31018 0 1541 .exijZ .exihi .exijZ 0 /fF4He0M2dMI/3TqcG.M17mC 1g3hMU1umN62.ZzT.u.qlaYz /LVjrG ...1YI /qxa4w0j5lD11KtVnQ1HCwHL 1H3cIy1BDI6S1byWLz1oguWX 0 0 0 
! /tmp/genek/tripwire-1.0/include/tripwire.h 0 ....5P 100600 47 1 4001 0 7247 .f4xQv .f4xPb .f4xPb 0 /0XyXQ1kMiTu.EM0Ty1nNa4I 1nAvT/.pdCPV.w2zn9/6HHi. ./Dh61 ...5yb 0ShulT/gYw5A/j61Nk0fl85W .rgZWR0M/QEE0PNj7r1h2Ubr 0 0 0 
  /tmp/genek/tripwire-1.0/include/sigs.h 0 ....5P 100600 14385 1 31018 0 613 .exija .exihi .exija 0 /hAfN..MjMmK.NVFb81dGnTF 1r91TP/z3oZc.9voWX1.eNep .EHxxi ...BqE .nOHS/0SOUgn.LUtCg.NweQw 1kJL621DCHJd0szgo5/mrU7m 0 0 0 
  /tmp/genek/tripwire-1.0/man 0 ....5P 40700 16384 2 31018 0 512 .exijx .exiiX .exijb 0 0 0 0 0 0 0 0 0 0 
! /tmp/genek/tripwire-1.0/man/tripwire.8 0 ....5P 100600 49 1 4001 0 7683 .f4xQw .f4xPb .f4xPb 0 .GbdYr1j9FFh1dUAeE.el0Vp /wbCeq/IUng309ZkMI/0wFEp /470Xb ...CJM 01IBOf1F2MBh1tRZ1i.pVyuw .1BGSd1GWnI70.UhTO1WwClv 0 0 0 
! /tmp/genek/tripwire-1.0/man/Makefile 0 ....5P 100600 48 1 4001 0 194 .f4xQw .f4xPb .f4xPb 0 /jaDF.0six7s1e/nkk07EiYV 0rdbCU/TqlHx.leB/21QCwQ4 0aTQcA ...4MA /O3EjY1E/hjA/W8IZo1fJ3uW 0BYo4s1enZtS.teaG3.6YIcm 0 0 0 
  /tmp/genek/tripwire-1.0/man/sigfetch.8 0 ....5P 100600 16391 1 31018 0 761 .exijb .exihl .exijb 0 0tb3ER0gMJQK.a8Og5/3NAJJ .KInnp1NmIre0HF7gu/l3wq2 1Up3BX ...C6M 19lWZM15GAMY01.A0x0A1DVw .nBhYJ0sPjKC0WtFbp.RDTuQ 0 0 0 
  /tmp/genek/tripwire-1.0/man/tw.config.5 0 ....5P 100600 16392 1 31018 0 7470 .exijb .exihl .exijb 0 /ILTFM/LMeuo0veAt11S7MbW /mL9Ge.PLEsX/GkEd.0kPUp8 1LOzTD ...BzV 0OpEWi/pEvUf15ajTw.rh8F2 1ZyUF/1z1ABW/gIzeW/Skccs 0 0 0 
  /tmp/genek/tripwire-1.0/sigs 0 ....5P 40700 18432 8 31018 0 512 .exijy .exiiY .exijn 0 0 0 0 0 0 0 0 0 0 
***************
*** 95,120 ****
  /tmp/genek/tripwire-1.0/sigs/snefru/snefru.h 0 ....5P 100600 38931 1 31018 0 22 .exijn .exii3 .exijn 0 1aZg/w//cRe10kLzca1MnRe5 1DqjoB..Mcrf.5Irn00/0fJ0 /4m2gz ...9Is 1331DZ1swhQY.swblq/C.ZKh 0w3EOe/G6ViD..ftJ2.nuFb7 0 0 0 
  /tmp/genek/tripwire-1.0/src 0 ....5P 40700 40967 2 31018 0 512 .exijy .exiig .exijs 0 0 0 0 0 0 0 0 0 0 
  /tmp/genek/tripwire-1.0/src/config.pre.l 0 ....5P 100600 40972 1 31018 0 1728 .exijo .exiiA .exijo 0 /EfQ4n1p/kRc/60WyS.a86/Y 1HU4YA.qHu/r/6rZCF04m52Y .rAKXh ...BPV /kH3l20kl66s1AXLbG.WUwjC /cCC010WfnGu.taMJs12ZAWD 0 0 0 
! /tmp/genek/tripwire-1.0/src/config.pre.y 0 ....5P 100600 40973 1 31018 0 9777 .exijo .exiiA .exijo 0 .h4Qa.0uRdxe1qFusk/zrxl. .PbGtS1J4bCk.eQQ0X1Oe1D5 00.CCv ...CgB .ZSEtm.mx9YD0UL/0g0WnGp. .GhTqd15sTep19r94C/dO8Vc 0 0 0 
  /tmp/genek/tripwire-1.0/src/config.prim.c 0 ....5P 100600 40974 1 31018 0 2728 .exijo .exiiB .exijo 0 0Tqzqh/Jfh.Y.Zb3ST/5BknF /hEISU154z2P/7qGT..Mjget 0KHH5Z ....ML /J4Gu1.7OwND/8W8xj04cnmh 1mnLxM01Xqps0s9VMK/eHC3V 0 0 0 
  /tmp/genek/tripwire-1.0/src/dbase.update.c 0 ....5P 100600 40975 1 31018 0 1599 .exijo .exiiC .exijo 0 /BGuhV04IHe6.MtHJM1kEe0r /kDEzi17fCRm0g6Mhd/a8KBI 0UaKML ...DEQ 1taIvS1Wq4UV/mTT8z1zzGKD 0QasDx0crSN80X68Nw.Ey55t 0 0 0 
  /tmp/genek/tripwire-1.0/src/ignorevec.c 0 ....5P 100600 40984 1 31018 0 3545 .exijo .exiiC .exijo 0 .7O1g21g0Maz1Kz4Ow1evm90 /UDtJD.COate/6EdaG/618Ku .EGc6q .../7M /GdpxG.mIlzP1zyvs9/sETjT .KXYC1/q1k5T.tBxK8/tLuZ6 0 0 0 
  /tmp/genek/tripwire-1.0/src/list.c 0 ....5P 100600 40985 1 31018 0 17081 .exijp .exiiC .exijp 0 /NUjEy/oQI50.4gsAg0.KsCI 1q/4Cz0tvvZ51I6r9z/BDVVW 1D2LWC ...Dkn 0SdmsB/xroW91WX13K.jmFeT 142JQk/H0VQ2.lRbvq1C9w87 0 0 0 
! /tmp/genek/tripwire-1.0/src/main.c 0 ....5P 100600 40986 1 31018 0 10112 .exijp .exiiC .exijp 0 1/BMUg/Bj8Bj0vGcgB1wnyF3 0nL7Yh/6sORL11BC2.0tY7QH /UoTnS ...0QD /ynFVa.J/YV8/RUD0l.C32Ug .lEDEA0MzCC9.RfI64/rYhpF 0 0 0 
  /tmp/genek/tripwire-1.0/src/nullsig.c 0 ....5P 100600 40987 1 31018 0 992 .exijp .exiiC .exijp 0 .x.xKv.cR/w50rFnd31PRH5s /iEGuk.bwEeV/rhvH60D57sl 14TSw6 ...04M 1w.0ID1RMk041UMtEU/uLgvX .r7P.V.CmbCm116VqK.8nbEi 0 0 0 
! /tmp/genek/tripwire-1.0/src/preen.c 0 ....5P 100600 40988 1 31018 0 4868 .exijp .exiiC .exijp 0 .YA6d./kUdFQ1zWabC/IKKCe 1zPldI0w..sX/4oky50XIw7. 018Unm .../Du /N4sM412T/AB.dR7uA.jF4nV 1F87Kn1wenw1.Mom81/UoWdu 0 0 0 
  /tmp/genek/tripwire-1.0/src/preen.interp.c 0 ....5P 100600 40989 1 31018 0 2618 .exijp .exiiD .exijp 0 1mNiE/.Q7PcP/v2VeW0Kjd5t 0pBkpZ/YevPi/DmzT..MmOFY .1OsXC ...8Wp /stnvH.sodId0RTHCG0FBnMd 0WxgqT./HnQK//.f4k.MH1A. 0 0 0 
  /tmp/genek/tripwire-1.0/src/preen.report.c 0 ....5P 100600 40990 1 31018 0 15903 .exijp .exiiD .exijp 0 .UnE3X.0ATcD1bGGeb0UHIcP .Q00NY0yCk0K0qFY2d/w18e7 .TAfOX ...1T3 0kVqbl0OjTE5/LaLlC/JSjiE /r3y6m1VpQFU..h0B809w7U5 0 0 0 
! /tmp/genek/tripwire-1.0/src/Makefile 0 ....5P 100600 40991 1 31018 0 7439 .exijq .exiiD .exijq 0 .J5p4p0EFx8j.OgC8Q1fpM.W 0BXFKS.6.3651XJ.XL1j9pjO 1mWivQ ...9zW /cvaB208RTNI1VkvHR08hF/e /NHzCt0OlKw11NjVcV1EgdUk 0 0 0 
  /tmp/genek/tripwire-1.0/src/utils.c 0 ....5P 100600 40992 1 31018 0 13384 .exijq .exiiE .exijq 0 .nm3S./tf5kL0cUsAs.9zH3d 1Lw4uh1b9YFD.nbqUf.UMZa/ 0cpm6l ...Cnm 0aSzc5.68f7m/mDT1l0Zi0sj /q8Zf40/1bHl0aM/1g/fUYXx 0 0 0 
! /tmp/genek/tripwire-1.0/src/dbase.build.c 0 ....5P 100600 40993 1 31018 0 10027 .exijq .exiiF .exijq 0 0V5WPq1wLs2U.gk8nz/clc7W 0DOfQ.0cKHAX.p0US60HHp3I 18BBCY ...D.M 0pB2w80aGxI7.P4FRU/gBKmO /wxlQx.fsbqk0w8BgG0p0Iy5 0 0 0 
  /tmp/genek/tripwire-1.0/src/sigfetch.c 0 ....5P 100600 40994 1 31018 0 3168 .exijr .exiiG .exijr 0 /M.nXI.PpYvU.17uya/C91Ei /kXZ6P.4PnT/040sER.z09lQ .pqKZx ...Dt4 .jE1hm/8jSJq.hvRc3/zq6a8 /OqmS7.em6Bb1AJhlx/qLDUQ 0 0 0 
! /tmp/genek/tripwire-1.0/src/config.parse.c 0 ....5P 100600 40995 1 31018 0 13058 .exijr .exiiH .exijr 0 /d7AKE.tjzGQ.80piF/6F523 ..fdrs.17GVv.Qlz.10hWwW2 .zeOCj ....gP /hxKMX0d/i3z/g2nHb1jNVZG /Cyqmb/2hJ12.Wfweg.g5LkS 0 0 0 
  /tmp/genek/tripwire-1.0/tests 1 ../zzz 40700 32768 2 31018 0 512 .exijy .exiig .exijt 0 0 0 0 0 0 0 0 0 0 
  /tmp/genek/tripwire-1.0/tests/tw.conf.test 1 ../zzz 100600 32784 1 31018 0 4659 .exijs .exiiJ .exijs 0 0 0 0 0 0 0 0 0 0 
! /tmp/genek/tripwire-1.0/tests/Makefile 1 ../zzz 100600 32793 1 31018 0 280 .exijs .exiiJ .exijs 0 0 0 0 0 0 0 0 0 0 
  /tmp/genek/tripwire-1.0/tests/test1.sh 1 ../zzz 100600 32794 1 31018 0 1412 .exijs .exiiJ .exijs 0 0 0 0 0 0 0 0 0 0 
! /tmp/genek/tripwire-1.0/tests/tw.db_TEST 1 ../zzz 100600 32795 1 31018 0 23648 .exijt .exiiJ .exijt 0 0 0 0 0 0 0 0 0 0 
  @@contents /tmp/genek/tripwire-1.0 0
  @@contents /tmp/genek/tripwire-1.0/tests 1
  @@contents /tmp/genek/tripwire-1.0/databases 2
--- 95,120 ----
  /tmp/genek/tripwire-1.0/sigs/snefru/snefru.h 0 ....5P 100600 38931 1 31018 0 22 .exijn .exii3 .exijn 0 1aZg/w//cRe10kLzca1MnRe5 1DqjoB..Mcrf.5Irn00/0fJ0 /4m2gz ...9Is 1331DZ1swhQY.swblq/C.ZKh 0w3EOe/G6ViD..ftJ2.nuFb7 0 0 0 
  /tmp/genek/tripwire-1.0/src 0 ....5P 40700 40967 2 31018 0 512 .exijy .exiig .exijs 0 0 0 0 0 0 0 0 0 0 
  /tmp/genek/tripwire-1.0/src/config.pre.l 0 ....5P 100600 40972 1 31018 0 1728 .exijo .exiiA .exijo 0 /EfQ4n1p/kRc/60WyS.a86/Y 1HU4YA.qHu/r/6rZCF04m52Y .rAKXh ...BPV /kH3l20kl66s1AXLbG.WUwjC /cCC010WfnGu.taMJs12ZAWD 0 0 0 
! /tmp/genek/tripwire-1.0/src/config.pre.y 0 ....5P 100600 52 1 4001 0 9778 .f4xR7 .f4xPc .f4xPc 0 1xgRSz1mTbnI/HE/rz.WXDVW .zIFad/Jsn1J1fXZRw.xPdZ/ /hBEYa ...4rf .tXRCs.LRmYq0oJmA51niT8x .RNvv21K3KCx0RySsZ/mmWjl 0 0 0 
  /tmp/genek/tripwire-1.0/src/config.prim.c 0 ....5P 100600 40974 1 31018 0 2728 .exijo .exiiB .exijo 0 0Tqzqh/Jfh.Y.Zb3ST/5BknF /hEISU154z2P/7qGT..Mjget 0KHH5Z ....ML /J4Gu1.7OwND/8W8xj04cnmh 1mnLxM01Xqps0s9VMK/eHC3V 0 0 0 
  /tmp/genek/tripwire-1.0/src/dbase.update.c 0 ....5P 100600 40975 1 31018 0 1599 .exijo .exiiC .exijo 0 /BGuhV04IHe6.MtHJM1kEe0r /kDEzi17fCRm0g6Mhd/a8KBI 0UaKML ...DEQ 1taIvS1Wq4UV/mTT8z1zzGKD 0QasDx0crSN80X68Nw.Ey55t 0 0 0 
  /tmp/genek/tripwire-1.0/src/ignorevec.c 0 ....5P 100600 40984 1 31018 0 3545 .exijo .exiiC .exijo 0 .7O1g21g0Maz1Kz4Ow1evm90 /UDtJD.COate/6EdaG/618Ku .EGc6q .../7M /GdpxG.mIlzP1zyvs9/sETjT .KXYC1/q1k5T.tBxK8/tLuZ6 0 0 0 
  /tmp/genek/tripwire-1.0/src/list.c 0 ....5P 100600 40985 1 31018 0 17081 .exijp .exiiC .exijp 0 /NUjEy/oQI50.4gsAg0.KsCI 1q/4Cz0tvvZ51I6r9z/BDVVW 1D2LWC ...Dkn 0SdmsB/xroW91WX13K.jmFeT 142JQk/H0VQ2.lRbvq1C9w87 0 0 0 
! /tmp/genek/tripwire-1.0/src/main.c 0 ....5P 100600 54 1 4001 0 10680 .f4xR9 .f4xPc .f4xPc 0 /J/LrA0vh1vu.RpI.//wC/8l ./SxoA.xisfO0e1kr10imRiB .A/ULW ...9Ta 1fJ5GS.fCFpl/nw7N21o2BFe 0JG.LY1v1KLr/gaeP.0ue/6B 0 0 0 
  /tmp/genek/tripwire-1.0/src/nullsig.c 0 ....5P 100600 40987 1 31018 0 992 .exijp .exiiC .exijp 0 .x.xKv.cR/w50rFnd31PRH5s /iEGuk.bwEeV/rhvH60D57sl 14TSw6 ...04M 1w.0ID1RMk041UMtEU/uLgvX .r7P.V.CmbCm116VqK.8nbEi 0 0 0 
! /tmp/genek/tripwire-1.0/src/preen.c 0 ....5P 100600 55 1 4001 0 5381 .f4xR9 .f4xPd .f4xPd 0 /Qbqp8/eVvbF1.pdbA.Oz3aW .qdJ1F0zmJVY/qpHSL/57O0F 1dZACy ...093 .Bt4s80kaaku1BLn681SFOKj 0W1PF..4ltao1NN9OW1IM1NL 0 0 0 
  /tmp/genek/tripwire-1.0/src/preen.interp.c 0 ....5P 100600 40989 1 31018 0 2618 .exijp .exiiD .exijp 0 1mNiE/.Q7PcP/v2VeW0Kjd5t 0pBkpZ/YevPi/DmzT..MmOFY .1OsXC ...8Wp /stnvH.sodId0RTHCG0FBnMd 0WxgqT./HnQK//.f4k.MH1A. 0 0 0 
  /tmp/genek/tripwire-1.0/src/preen.report.c 0 ....5P 100600 40990 1 31018 0 15903 .exijp .exiiD .exijp 0 .UnE3X.0ATcD1bGGeb0UHIcP .Q00NY0yCk0K0qFY2d/w18e7 .TAfOX ...1T3 0kVqbl0OjTE5/LaLlC/JSjiE /r3y6m1VpQFU..h0B809w7U5 0 0 0 
! /tmp/genek/tripwire-1.0/src/Makefile 0 ....5P 100600 50 1 4001 0 7462 .f4xRB .f4xPc .f4xPc 0 .Cl.XG1sg54G13OkE90qizHy 0b/M3V17h1ep.S9Knw0BXt4w /AFP2D ...BvJ 1fPPR/0ggDln1E/bFj0VW5hT .USQBf0vKxAB/htgsv.nzolx 0 0 0 
  /tmp/genek/tripwire-1.0/src/utils.c 0 ....5P 100600 40992 1 31018 0 13384 .exijq .exiiE .exijq 0 .nm3S./tf5kL0cUsAs.9zH3d 1Lw4uh1b9YFD.nbqUf.UMZa/ 0cpm6l ...Cnm 0aSzc5.68f7m/mDT1l0Zi0sj /q8Zf40/1bHl0aM/1g/fUYXx 0 0 0 
! /tmp/genek/tripwire-1.0/src/dbase.build.c 0 ....5P 100600 53 1 4001 0 10244 .f4xRC .f4xPc .f4xPc 0 /UAr2l1hhsGL1gomEy0KjND8 019UQg1A78fY.T/WEi1Pkt9t /cZTRM ...D.i 0ke77R.k6fBa.BUFg9/pswZb 1UiSkT.MhD.1.c7ZZN/NFHgz 0 0 0 
  /tmp/genek/tripwire-1.0/src/sigfetch.c 0 ....5P 100600 40994 1 31018 0 3168 .exijr .exiiG .exijr 0 /M.nXI.PpYvU.17uya/C91Ei /kXZ6P.4PnT/040sER.z09lQ .pqKZx ...Dt4 .jE1hm/8jSJq.hvRc3/zq6a8 /OqmS7.em6Bb1AJhlx/qLDUQ 0 0 0 
! /tmp/genek/tripwire-1.0/src/config.parse.c 0 ....5P 100600 51 1 4001 0 13121 .f4xRD .f4xPc .f4xPc 0 0waPv10LgxvC.aB4G7.XfjMH 1G1xlt/DFWXE1wVpF31sxgMA 1krosG ...61a ..ZG1f.5mRHV0lam4P/h/6/5 1ZzG9//UucQw.sPUUu0LQ2RW 0 0 0 
  /tmp/genek/tripwire-1.0/tests 1 ../zzz 40700 32768 2 31018 0 512 .exijy .exiig .exijt 0 0 0 0 0 0 0 0 0 0 
  /tmp/genek/tripwire-1.0/tests/tw.conf.test 1 ../zzz 100600 32784 1 31018 0 4659 .exijs .exiiJ .exijs 0 0 0 0 0 0 0 0 0 0 
! /tmp/genek/tripwire-1.0/tests/Makefile 1 ../zzz 100600 56 1 4001 0 275 .f4xQe .f4xPd .f4xPd 0 0 0 0 0 0 0 0 0 0 
  /tmp/genek/tripwire-1.0/tests/test1.sh 1 ../zzz 100600 32794 1 31018 0 1412 .exijs .exiiJ .exijs 0 0 0 0 0 0 0 0 0 0 
! /tmp/genek/tripwire-1.0/tests/tw.db_TEST 1 ../zzz 100600 57 1 4001 0 23343 .f4xU1 .f4xPd .f4xPf 0 0 0 0 0 0 0 0 0 0 
  @@contents /tmp/genek/tripwire-1.0 0
  @@contents /tmp/genek/tripwire-1.0/tests 1
  @@contents /tmp/genek/tripwire-1.0/databases 2
