home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / unix / volume26 / tripwire / patch02 < prev    next >
Encoding:
Text File  |  1993-04-19  |  37.0 KB  |  813 lines

  1. Newsgroups: comp.sources.unix
  2. From: spaf@cs.purdue.edu (Gene Spafford)
  3. Subject: v26i172: tripwire - security integrity monitor, Patch02
  4. Sender: unix-sources-moderator@vix.com
  5. Approved: paul@vix.com
  6.  
  7. Submitted-By: spaf@cs.purdue.edu (Gene Spafford)
  8. Posting-Number: Volume 26, Issue 172
  9. Archive-Name: tripwire/patch02
  10.  
  11.     This file contains the second official patch to Tripwire.  It
  12. contains a number of bug fixes that have been corrected since the
  13. first patch released on December 3, 1992 -- including a serious
  14. problem with the realloc() library call that made Tripwire dump core
  15. whenever 'tripwire -update' was used on some machines (specifically,
  16. those that fail to implement realloc(3) according to ANSI specs).
  17.  
  18.     Please see the ./Changelog file for a complete list of changes
  19. that were made in the patch.
  20.  
  21.     To apply this patch, make sure that the first patch has
  22. already been applied.  You can confirm this (as will the 'patch'
  23. program) by checking ./include/patchlevel.h.  You should see a line:
  24.  
  25.     #define PATCHLEVEL 2
  26.  
  27.     Then, as before, invoke the 'patch' program on this file by:
  28.  
  29.         patch -p1 < this_patch_file
  30.  
  31.     Next, type 'make' and Tripwire will be rebuilt.  You can 
  32. confirm that you are running a binary with this patch installed
  33. by typing 'tripwire -version'.  You should see:
  34.  
  35.     Tripwire version 1.0.2 (patchlevel 3)
  36.  
  37.     Copyright (c) 1992, Purdue Research Foundation
  38.         By Gene Kim, Eugene Spafford
  39.  
  40.     (You can, of course, apply the patch by hand if you do not have
  41. the "patch" program.  Many vendors supply "patch" as unsupported
  42. software.  It is also available from many archive sites; it is on
  43. ftp.uu.net in the pub.archiving directory, for instance.  Please do
  44. not ask us to mail you a copy -- a uuencoded tar file is over 100K.)
  45.  
  46.  
  47.     But, wait!  There's more exciting news below!
  48.  
  49. ===
  50.  
  51.     A Tripwire mailing list has been established.  It is an
  52. unmoderated reflector, intended to be used as a place to discuss
  53. Tripwire-related issues.  We envision this mailing list as the primary
  54. forum for discussing future enhancements, announcing new releases,
  55. solving problems (and reporting any remaining lurking bugs), and
  56. otherwise discussing issues related to Tripwire.
  57.  
  58.     To join the list, send e-mail to "tripwire-request@cs.purdue.edu".
  59. Put the word "join" as the only thing in the body of the message.
  60. To get help on using the server, including getting patches and source
  61. by e-mail, and setting a different address on the list, send a message
  62. with the word "help" as the body.
  63.  
  64.      Please send any Tripwire-related comments, complaints, musings,
  65. and suggestions to "tripwire@cs.purdue.edu".  If you are not on the
  66. list, or would rather not use the list, you can contact us directly as
  67. genek@mentor.cc.purdue.edu and spaf@cs.purdue.edu as before.
  68.  
  69.  
  70. Gene & Gene
  71. Kim  & Spafford
  72.  
  73. December 11, 1992
  74.  
  75.  
  76. diff -c tw/Changelog:1.4 tw/Changelog:1.6
  77. *** tw/Changelog:1.4    Thu Dec 10 12:01:02 1992
  78. --- tw/Changelog    Thu Dec 10 12:01:02 1992
  79. ***************
  80. *** 1,6 ****
  81. ! # $Id: Changelog,v 1.4 92/11/23 22:15:07 genek Exp $
  82.   
  83.   The following is the official list of changes between revisions:
  84.   
  85.   first official patch  :-)
  86.   1.0.1:                      Mon Nov 23 15:58:50 EST 1992
  87. --- 1,19 ----
  88. ! # $Id: Changelog,v 1.6 92/12/10 10:56:56 genek Exp $
  89.   
  90.   The following is the official list of changes between revisions:
  91. + 1.0.2:                      Thu Dec 10 05:45:48 EST 1992
  92. +     fixed @@ifhost xxx problem which dumped core.  (thanks Rich Asmuth)
  93. +     fixed realloc() problem.  (thanks Beth Elias and Joe Ramus)
  94. +     fixed -update problem which caused Tripwire to forget all about
  95. +         special files.  (thanks Joe Ramus)
  96. +     fixed Changelog.  I forgot about the Makefile fix.  (thanks Tom Orban)
  97. +     more useful error message when Tripwire can't find configuration file.
  98. +     fixed 'tripwire -update' so it adds files explicitly specified on 
  99. +         command line, but not in database.  (thanks Drew Gonczi)
  100. +     Note that this needs some work -- we'll need to have an -add
  101. +     and -delete option to make this functionally clean and preserve
  102. +     database/tw.config semantics.
  103.   
  104.   first official patch  :-)
  105.   1.0.1:                      Mon Nov 23 15:58:50 EST 1992
  106. diff -c tw/FAQ:1.2 tw/FAQ:1.4
  107. *** tw/FAQ:1.2    Thu Dec 10 12:01:03 1992
  108. --- tw/FAQ    Thu Dec 10 12:01:03 1992
  109. ***************
  110. *** 1,4 ****
  111. ! # $Id: FAQ,v 1.2 92/11/23 21:19:55 genek Exp $
  112.   
  113.   #
  114.   # FAQ for Tripwire
  115. --- 1,4 ----
  116. ! # $Id: FAQ,v 1.4 92/12/10 16:57:57 genek Exp $
  117.   
  118.   #
  119.   # FAQ for Tripwire
  120. ***************
  121. *** 62,67 ****
  122. --- 62,68 ----
  123.       Tripwire never traverses symbolic links or enters another
  124.       filesystem.  
  125.   
  126.   Q:    Is there any way I can Tripwire to print out the names of the
  127.       files as they are being scanned?  I want to know which files
  128.       Tripwire is spending all of its time crunching.
  129. ***************
  130. *** 69,74 ****
  131. --- 70,107 ----
  132.   A:    Try using 'tripwire -v'.  This wasn't documented in the first
  133.       tripwire.5 manual page.
  134.   
  135. + Q:    I added a new file to a directory already in the tw.config file.
  136. +     When I do a 'tripwire -update', the new file isn't added to the
  137. +     database!
  138. + A:     This is a feature.  When using 'tripwire -update' to update 
  139. +     existing entries, Tripwire scans your existing database and updates
  140. +     only those entries that already exist.  This makes it less likely
  141. +     to inadverdently add new files into your database unknowingly.  (The
  142. +     premise is that initializing the database was a carefully
  143. +     thought-out operation, while updates are done more casually.)
  144. +     Consider the following scenario:
  145. +     A set of tools reside in /usr/local/gnu.  You install the new
  146. +     versions of, say, the compilers.  Consequently, the Tripwire
  147. +     database entries for these files are out-of-date (time stamp and
  148. +     signatures).  By running 'tripwire -update /usr/local/gnu', you will 
  149. +     only update the entries that already exist in the database.  New
  150. +     files lurking in /usr/local/gnu will not be added, thus making
  151. +     less likely an entry being added to your database.
  152. +         The idea was to enforce continuity for entries in the
  153. +     tw.config file.  So, the /etc entry means "files that currently
  154. +     reside in /etc when I initialize the database, but not any files
  155. +     that may appear there later."  This is why 'tripwire -update'
  156. +     doesn't add new files.
  157. +     To add a new file, you'll have to specify it on the command
  158. +     line.  For instance, 'tripwire -update /usr/local/gnu/gnunew /etc/wurble'.  
  159. +     adds two new entry to your database. 
  160.   Q:    I try to initialize the database by typing 'tripwire -initialize'
  161.       but I can't find the binary.  Where is the tripwire executable?
  162.   
  163. ***************
  164. *** 80,86 ****
  165.   Gene & Gene
  166.   Kim  & Spafford
  167.   
  168. ! November 23, 1992
  169.   (genek@mentor.cc.purdue.edu)
  170.   (spaf@cs.purdue.edu)
  171.       
  172. --- 113,119 ----
  173.   Gene & Gene
  174.   Kim  & Spafford
  175.   
  176. ! December 10, 1992
  177.   (genek@mentor.cc.purdue.edu)
  178.   (spaf@cs.purdue.edu)
  179.       
  180. diff -c tw/TODO:1.1.1.1 tw/TODO:1.2
  181. *** tw/TODO:1.1.1.1    Thu Dec 10 12:01:03 1992
  182. --- tw/TODO    Thu Dec 10 12:01:03 1992
  183. ***************
  184. *** 1,4 ****
  185. ! # $Id: TODO,v 1.4 92/11/03 13:34:56 genek Exp $
  186.  
  187.   first net release
  188.   v1.0:                 Tue Nov  3 04:37:39 EST 1992
  189. --- 1,4 ----
  190. ! # $Id: TODO,v 1.2 92/12/10 10:56:59 genek Exp $
  191.   
  192.   first net release
  193.   v1.0:                 Tue Nov  3 04:37:39 EST 1992
  194. ***************
  195. *** 7,12 ****
  196. --- 7,15 ----
  197.       fix lurking bug that surfaces in ETA-10 versions
  198.       find out why malloc() sometimes fails in Cray versions
  199.   
  200. +     add -add and -delete command-line options
  201. +     database locking \
  202. +     tripwire logging / Drew Gonczi has some fascinating ideas...
  203.       regular expression handling in tw.config file
  204.       hook for tar and cpio file parsing
  205.       inclusion of complete and authorative documentation
  206. diff -c tw/include/patchlevel.h:1.2 tw/include/patchlevel.h:1.3
  207. *** tw/include/patchlevel.h:1.2    Thu Dec 10 12:01:07 1992
  208. --- tw/include/patchlevel.h    Thu Dec 10 12:01:07 1992
  209. ***************
  210. *** 1,3 ****
  211. ! /* $Id: patchlevel.h,v 1.2 92/11/23 22:24:48 genek Exp $ */
  212.   
  213. ! #define    PATCHLEVEL    2
  214. --- 1,3 ----
  215. ! /* $Id: patchlevel.h,v 1.3 92/12/07 16:07:30 genek Exp $ */
  216.   
  217. ! #define    PATCHLEVEL    3
  218. diff -c tw/include/tripwire.h:1.3 tw/include/tripwire.h:1.4
  219. *** tw/include/tripwire.h:1.3    Thu Dec 10 12:01:09 1992
  220. --- tw/include/tripwire.h    Thu Dec 10 12:01:09 1992
  221. ***************
  222. *** 1,4 ****
  223. ! /* $Id: tripwire.h,v 1.3 92/11/24 03:18:52 genek Exp $ */
  224.   
  225.   /************************************************************************
  226.    *
  227. --- 1,4 ----
  228. ! /* $Id: tripwire.h,v 1.4 92/12/07 16:07:32 genek Exp $ */
  229.   
  230.   /************************************************************************
  231.    *
  232. ***************
  233. *** 37,43 ****
  234.   
  235.   /* version information */
  236.   
  237. ! #define VERSION_NUM     "1.0.1"
  238.   #define DB_VERSION_NUM    1
  239.   
  240.   /* For signature routines prototypes: */
  241. --- 37,43 ----
  242.   
  243.   /* version information */
  244.   
  245. ! #define VERSION_NUM     "1.0.2"
  246.   #define DB_VERSION_NUM    1
  247.   
  248.   /* For signature routines prototypes: */
  249. diff -c tw/src/config.parse.c:1.3 tw/src/config.parse.c:1.5
  250. *** tw/src/config.parse.c:1.3    Thu Dec 10 12:01:16 1992
  251. --- tw/src/config.parse.c    Thu Dec 10 12:01:16 1992
  252. ***************
  253. *** 1,5 ****
  254.   #ifndef lint
  255. ! static char rcsid[] = "$Id: config.parse.c,v 1.3 92/11/23 22:15:18 genek Exp $";
  256.   #endif
  257.   
  258.   /*
  259. --- 1,5 ----
  260.   #ifndef lint
  261. ! static char rcsid[] = "$Id: config.parse.c,v 1.5 92/12/07 17:25:00 genek Exp $";
  262.   #endif
  263.   
  264.   /*
  265. ***************
  266. *** 120,126 ****
  267.       }
  268.       else if ((fpin = fopen(configfile, "r")) == NULL) {
  269.       char err[1024];
  270. !     sprintf(err, "tripwire: Couldn't open config file %s", configfile);
  271.       perror(err);
  272.       exit(1);
  273.       }
  274. --- 120,126 ----
  275.       }
  276.       else if ((fpin = fopen(configfile, "r")) == NULL) {
  277.       char err[1024];
  278. !     sprintf(err, "tripwire: Couldn't open config file '%s'", configfile);
  279.       perror(err);
  280.       exit(1);
  281.       }
  282. ***************
  283. *** 128,134 ****
  284.       err = umask(077);  /* to protect the tempfile */
  285.   
  286.       if ((fpout = fopen(tmpfilename, "w+")) == NULL) {
  287. !     perror("configfile_read: fopen()");
  288.       exit(1);
  289.       }
  290.       (void) umask(err);  /* return it to its former state */
  291. --- 128,136 ----
  292.       err = umask(077);  /* to protect the tempfile */
  293.   
  294.       if ((fpout = fopen(tmpfilename, "w+")) == NULL) {
  295. !     char s[1024];
  296. !     sprintf(s, "tripwire: Couldn't open config file '%s'", configfile);
  297. !     perror(s);
  298.       exit(1);
  299.       }
  300.       (void) umask(err);  /* return it to its former state */
  301. diff -c tw/src/config.pre.y:1.2 tw/src/config.pre.y:1.3
  302. *** tw/src/config.pre.y:1.2    Thu Dec 10 12:01:17 1992
  303. --- tw/src/config.pre.y    Thu Dec 10 12:01:17 1992
  304. ***************
  305. *** 22,28 ****
  306.   %token ESCCHAR
  307.   
  308.   %{
  309. ! /* $Id: config.pre.y,v 1.2 92/11/23 22:15:21 genek Exp $ */
  310.   
  311.   /*
  312.    * config.y
  313. --- 22,28 ----
  314.   %token ESCCHAR
  315.   
  316.   %{
  317. ! /* $Id: config.pre.y,v 1.3 92/12/07 15:59:25 genek Exp $ */
  318.   
  319.   /*
  320.    * config.y
  321. ***************
  322. *** 124,148 ****
  323.   
  324.   colines    : colines coline 
  325.           {
  326. !         /* concatenate the two terminals together */
  327. !         if ($1 == NULL) {
  328. !             $$ = (char *) malloc((unsigned) strlen($2) + 1);
  329. !             $$[0] = '\0';
  330. !         }
  331.           else {
  332. !             $$ = (char *) malloc((unsigned) 
  333. !                     (strlen($1) + strlen($2)) + 2);
  334. !             (void) strcpy($$, $1);
  335. !             (void) strcat($$, "\n");
  336. !             /* free up the left component */
  337. !             free($1);
  338.           }
  339. -         (void) strcat($$, $2);
  340. -         /* free up the right component */
  341. -         if ($2)
  342. -             free($2);
  343.           }
  344.       | 
  345.           {
  346. --- 124,153 ----
  347.   
  348.   colines    : colines coline 
  349.           {
  350. !             /* If coline is null, just pass on colines. */
  351. !             if ($2 == NULL) 
  352. !             $$ = $1;
  353.           else {
  354. !             /* concatenate the two terminals together */
  355. !             if ($1 == NULL) {
  356. !             $$ = (char *) malloc((unsigned) strlen($2) + 1);
  357. !             $$[0] = '\0';
  358. !             }
  359. !             else {
  360. !             $$ = (char *) malloc((unsigned) 
  361. !                         (strlen($1) + strlen($2)) + 2);
  362. !             (void) strcpy($$, $1);
  363. !             (void) strcat($$, "\n");
  364. !     
  365. !             /* free up the left component */
  366. !             free($1);
  367. !             }
  368. !             (void) strcat($$, $2);
  369. !     
  370. !             /* free up the right component */
  371. !             if ($2)
  372. !             free($2);
  373.           }
  374.           }
  375.       | 
  376.           {
  377. diff -c tw/src/dbase.build.c:1.4 tw/src/dbase.build.c:1.5
  378. *** tw/src/dbase.build.c:1.4    Thu Dec 10 12:01:17 1992
  379. --- tw/src/dbase.build.c    Thu Dec 10 12:01:18 1992
  380. ***************
  381. *** 1,5 ****
  382.   #ifndef lint
  383. ! static char rcsid[] = "$Id: dbase.build.c,v 1.4 92/11/24 03:18:57 genek Exp $";
  384.   #endif
  385.   
  386.   /*
  387. --- 1,5 ----
  388.   #ifndef lint
  389. ! static char rcsid[] = "$Id: dbase.build.c,v 1.5 92/12/07 15:59:27 genek Exp $";
  390.   #endif
  391.   
  392.   /*
  393. ***************
  394. *** 343,349 ****
  395.       /* descriptor for signature functions */
  396.       if ((fd = open(filename, O_RDONLY)) < 0) {
  397.       /* skip it if we had an error */
  398. !     warn_with_err("Trying to open %s for signature\n", filename);
  399.       return;
  400.       }
  401.   
  402. --- 343,349 ----
  403.       /* descriptor for signature functions */
  404.       if ((fd = open(filename, O_RDONLY)) < 0) {
  405.       /* skip it if we had an error */
  406. !     warn_with_err("Trying to open %s for signature", filename);
  407.       return;
  408.       }
  409.   
  410. diff -c tw/src/dbase.update.c:1.1.1.1 tw/src/dbase.update.c:1.2
  411. *** tw/src/dbase.update.c:1.1.1.1    Thu Dec 10 12:01:18 1992
  412. --- tw/src/dbase.update.c    Thu Dec 10 12:01:18 1992
  413. ***************
  414. *** 1,5 ****
  415.   #ifndef lint
  416. ! static char rcsid[] = "$Id: dbase.update.c,v 1.2 92/11/03 02:43:43 genek Exp $";
  417.   #endif
  418.   
  419.   /*
  420. --- 1,5 ----
  421.   #ifndef lint
  422. ! static char rcsid[] = "$Id: dbase.update.c,v 1.2 92/12/07 15:59:28 genek Exp $";
  423.   #endif
  424.   
  425.   /*
  426. ***************
  427. *** 60,65 ****
  428. --- 60,78 ----
  429.       }
  430.       /* flag if entry number match */
  431.       if (entry == flagentry) {
  432. +         int flags;
  433. +         /* exception list */
  434. +         flags = list_getflag(p_fileentry->varname, pp_list);
  435. +         /* printf("%s: %d\n", p_fileentry->varname, flags); */
  436. +         if (flags & FLAG_NOOPEN) {
  437. +             if (verbosity > 3)
  438. +             fprintf(stderr, "%s is a special file!  Skipping...\n",
  439. +                 p_fileentry->varname);
  440. +             continue;
  441. +         }
  442.           list_setflag(p_fileentry->varname, FLAG_UPDATE, pp_list);
  443.       }
  444.       }
  445. diff -c tw/src/main.c:1.3 tw/src/main.c:1.4
  446. *** tw/src/main.c:1.3    Thu Dec 10 12:01:19 1992
  447. --- tw/src/main.c    Thu Dec 10 12:01:19 1992
  448. ***************
  449. *** 1,5 ****
  450.   #ifndef lint
  451. ! static char rcsid[] = "$Id: main.c,v 1.3 92/11/24 09:52:23 genek Exp $";
  452.   #endif
  453.   
  454.   /************************************************************************
  455. --- 1,5 ----
  456.   #ifndef lint
  457. ! static char rcsid[] = "$Id: main.c,v 1.4 92/12/07 15:59:30 genek Exp $";
  458.   #endif
  459.   
  460.   /************************************************************************
  461. ***************
  462. *** 223,229 ****
  463.           }
  464.           /* exhaust the argument list */
  465.           while (pc) {
  466. !         if ((pp_updateentries = (char **) realloc(pp_updateentries, 
  467.               (numupdateentries+1) * sizeof(char *))) == NULL) {
  468.               die_with_err("main: realloc() failed!\n", NULL);
  469.           }
  470. --- 223,235 ----
  471.           }
  472.           /* exhaust the argument list */
  473.           while (pc) {
  474. !         if (pp_updateentries == NULL) {
  475. !             if ((pp_updateentries = (char **) malloc(sizeof(char *))) 
  476. !                         == NULL) {
  477. !                 die_with_err("main: malloc() failed!\n", NULL);
  478. !             }
  479. !         } else 
  480. !         if ((pp_updateentries = (char **) realloc(pp_updateentries,
  481.               (numupdateentries+1) * sizeof(char *))) == NULL) {
  482.               die_with_err("main: realloc() failed!\n", NULL);
  483.           }
  484. diff -c tw/src/preen.c:1.3 tw/src/preen.c:1.7
  485. *** tw/src/preen.c:1.3    Thu Dec 10 12:01:19 1992
  486. --- tw/src/preen.c    Thu Dec 10 12:01:20 1992
  487. ***************
  488. *** 1,5 ****
  489.   #ifndef lint
  490. ! static char rcsid[] = "$Id: preen.c,v 1.3 92/11/24 03:19:00 genek Exp $";
  491.   #endif
  492.   
  493.   /*
  494. --- 1,5 ----
  495.   #ifndef lint
  496. ! static char rcsid[] = "$Id: preen.c,v 1.7 92/12/10 10:57:27 genek Exp $";
  497.   #endif
  498.   
  499.   /*
  500. ***************
  501. *** 24,33 ****
  502.   #else
  503.   #include <strings.h>
  504.   #endif
  505. ! #ifdef __STDC__
  506. ! # include <sys/types.h>
  507. ! # include <sys/stat.h>
  508. ! #endif
  509.   #if (defined(SYSV) && (SYSV < 3))
  510.   # include <limits.h>
  511.   #endif    /* SVR2 */
  512. --- 24,31 ----
  513.   #else
  514.   #include <strings.h>
  515.   #endif
  516. ! #include <sys/types.h>
  517. ! #include <sys/stat.h>
  518.   #if (defined(SYSV) && (SYSV < 3))
  519.   # include <limits.h>
  520.   #endif    /* SVR2 */
  521. ***************
  522. *** 35,40 ****
  523. --- 33,39 ----
  524.   #include "../include/tripwire.h"
  525.   
  526.   static struct list *preenlist = NULL;
  527. + static int numentriesread = 0;        /* running count of @@contents */
  528.   
  529.   /* prototypes */
  530.   char *mktemp();
  531. ***************
  532. *** 101,106 ****
  533. --- 100,106 ----
  534.       struct list *entry_list = (struct list *) NULL;
  535.       char *entry;
  536.       int i, numskipped = 0;        /* number of entries not found */
  537. +     struct list_elem *p_fileentry;
  538.   
  539.       /* build the filelist from the preen.config file
  540.        *         it will create the linked list of files
  541. ***************
  542. *** 128,146 ****
  543.           database_update_markentries(&filelist, entrynum);
  544.   
  545.       }
  546. !     /* is there even such a file? */
  547.       else if (list_isthere(entry, &preenlist) == 0) {
  548. !         fprintf(stderr, "tripwire: update couldn't find entry '%s'!  Skipping...\n", entry);
  549. !         numskipped++;
  550.           continue;
  551.       }
  552.       /* entry is just a regular file */
  553.       else {
  554. !         /* make sure it's in our database */
  555.           if (list_isthere(entry, &filelist) < 0) {
  556.           fprintf(stderr, "preen_update: entry `%s' not found!\n",
  557.                       entry);
  558. !         exit(1);
  559.           }
  560.           list_setflag(entry, FLAG_UPDATE, &filelist);
  561.       }
  562. --- 128,173 ----
  563.           database_update_markentries(&filelist, entrynum);
  564.   
  565.       }
  566. !     /* remember, (preenlist) holds the newly generated list of files
  567. !      * generated from the current state of the filesystems using
  568. !      * tw.config.  (filelist) holds the list of files grabbed from
  569. !      * the previously generated database.
  570. !      */
  571. !     /* is there even such an entry in our database? */
  572.       else if (list_isthere(entry, &preenlist) == 0) {
  573. !         /* this is the wrong behavior for now.  instead, we just add
  574. !          * it to database, adding new entry 
  575. !             fprintf(stderr, "tripwire: update couldn't find entry '%s'!  Skipping...\n", entry);
  576. !          */
  577. !         char entry_ignorevec[64]; 
  578. !         char number[64];
  579. !         char ignorestring[64];
  580. !         fprintf(stderr, "tripwire: update couldn't find entry '%s'!  Adding...\n", entry);
  581. !         sprintf(number, "%d", numentriesread);
  582. !         /* we use the default ignore-string.  XXX.  Must be definable */
  583. !         strcpy(ignorestring, defaultignore);
  584. !         ignore_configvec_to_dvec(ignorestring);
  585. !         sprintf(entry_ignorevec, "%d %s", numentriesread++, ignorestring);
  586. !         list_set(entry, number, 0, &entry_list);
  587. !         list_set(entry, entry_ignorevec, 0, &filelist);
  588. !         list_setflag(entry, FLAG_UPDATE, &filelist);
  589.           continue;
  590.       }
  591.       /* entry is just a regular file */
  592. +     /*            XXX: we'll add it with default flags */
  593.       else {
  594. !         /* we skip it the file is not in our database and 
  595. !          * make sure it's in our database 
  596. !          *             XXX: need a -delete option for this case! */
  597.           if (list_isthere(entry, &filelist) < 0) {
  598.           fprintf(stderr, "preen_update: entry `%s' not found!\n",
  599.                       entry);
  600. !         numskipped++;
  601. !         continue;
  602.           }
  603.           list_setflag(entry, FLAG_UPDATE, &filelist);
  604.       }
  605. ***************
  606. *** 148,154 ****
  607.       
  608.       /* did we skip all the files, thus a no-op? */
  609.       if (numskipped == numentries) {
  610. !         printf("Couldn't find any update entries, so database remains unchanged!\n");
  611.       exit(1);
  612.       }
  613.   
  614. --- 175,181 ----
  615.       
  616.       /* did we skip all the files, thus a no-op? */
  617.       if (numskipped == numentries) {
  618. !         printf("tripwire: couldn't find any update entries, so database remains unchanged!\n");
  619.       exit(1);
  620.       }
  621.   
  622. ***************
  623. *** 171,177 ****
  624.    * void
  625.    * preen_database_load()
  626.    *
  627. !  *    load in the old database file.
  628.    */
  629.   
  630.   static void
  631. --- 198,204 ----
  632.    * void
  633.    * preen_database_load()
  634.    *
  635. !  *    load in the old database file into the global list (filelist).
  636.    */
  637.   
  638.   static void
  639. ***************
  640. *** 209,214 ****
  641. --- 236,242 ----
  642.   
  643.       /* build table of contents */
  644.       if (strcmp(key, "@@contents") == 0) {
  645. +         numentriesread++;
  646.           continue;
  647.       }
  648.       /* skip database version */
  649. ***************
  650. *** 217,226 ****
  651. --- 245,276 ----
  652.       }
  653.       /* else it's a file */
  654.       else {
  655. +         int mode;
  656. +         char tmp1[512], tmp2[512];
  657.           /* expand any escaped characters */
  658.           filename_escape_expand(key);
  659.   
  660.           list_set(key, value, 0, &filelist);
  661. +         /* check to see if it's a special file */
  662. +         if (sscanf(value, "%s %s %o", tmp1, tmp2, &mode) != 3) {
  663. +             die_with_err("preen_database_load: sscanf() parse error!", 
  664. +                 NULL);
  665. +         }
  666. +         
  667. +         switch (mode & S_IFMT) {
  668. +           case S_IFIFO:
  669. +           case S_IFCHR:
  670. +           case S_IFDIR:
  671. +           case S_IFBLK:
  672. + #if !defined(SYSV) || (SYSV > 3)
  673. +           case S_IFSOCK:
  674. +           case S_IFLNK:
  675. + #endif
  676. +         (void) list_setflag(key, FLAG_NOOPEN, &filelist);
  677. +         }
  678.       }
  679.       }
  680.   
  681. diff -c tw/tests/tw.db_TEST:1.4 tw/tests/tw.db_TEST:1.6
  682. *** tw/tests/tw.db_TEST:1.4    Thu Dec 10 12:01:21 1992
  683. --- tw/tests/tw.db_TEST    Thu Dec 10 12:01:22 1992
  684. ***************
  685. *** 1,4 ****
  686. ! # Generated by Tripwire, version 1.0.1 on Tue Dec  1 16:25:33 1992
  687.   @@dbaseversion 1
  688.   /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 
  689.   /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 
  690. --- 1,4 ----
  691. ! # Generated by Tripwire, version 1.0.2 on Thu Dec 10 12:09:04 1992
  692.   @@dbaseversion 1
  693.   /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 
  694.   /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 
  695. ***************
  696. *** 12,20 ****
  697.   /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 
  698.   /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 
  699.   /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 
  700. ! /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 
  701. ! /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 
  702. ! /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 
  703.   /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 
  704.   /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 
  705.   /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 
  706. --- 12,20 ----
  707.   /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 
  708.   /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 
  709.   /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 
  710. ! /tmp/genek/tripwire-1.0/TODO 0 ....5P 100600 29 1 4001 0 619 .f7mQv .f7mMb .f7mMb 0 1HkofI0s95Ny1UcKpa1FyQlr 0QirNp0d1c.a/8Ops3/M3c5O 17FIcx ...Dpg /iKC.v1I0jt51XJ7Nt0e7Rhv .yIpIy/Fh2s31aNOep1295bD 0 0 0 
  711. ! /tmp/genek/tripwire-1.0/Changelog 0 ....5P 100600 11 1 4001 0 8161 .f7mQv .f7mMb .f7mMb 0 .A4Ihl/wUp7e14CMzH.IVaLs /VLKw3/Oqqbw.76.hb1V6DGq 1oerNq ...6Tg 0urmhc0DG0CJ/EPiib.HeSY0 .n9vWS1wuq70.xsSpn0WxD1S 0 0 0 
  712. ! /tmp/genek/tripwire-1.0/FAQ 0 ....5P 100600 33 1 4001 0 4164 .f7rZf .f7rY6 .f7rY6 0 /tEZOS1fIFTN14UN070FyLFc .fPwdt1Jno4L1QBeK61piufu /p529j ...3dO 15P15f1W65Ab1zfhGE1YOjMw 0WtVXi0ojnx11.9wjB.1ZP0m 0 0 0 
  713.   /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 
  714.   /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 
  715.   /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 
  716. ***************
  717. *** 52,60 ****
  718.   /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 
  719.   /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 
  720.   /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 
  721. ! /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 
  722.   /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 
  723. ! /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 
  724.   /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 
  725.   /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 
  726.   /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 
  727. --- 52,60 ----
  728.   /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 
  729.   /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 
  730.   /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 
  731. ! /tmp/genek/tripwire-1.0/include/patchlevel.h 0 ....5P 100600 30 1 4001 0 82 .f7mQw .f7mMb .f7mMb 0 /WNIXG.z1oJQ/OM/Tw.syrir .KKR9L.XMqhX0nM9o7.bZ2g5 .tNyFp ...BYz .m2lYc1P5h8o18Kw8c0OSsrF .ny5Hy1TLNKq/gXQoW1j7S78 0 0 0 
  732.   /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 
  733. ! /tmp/genek/tripwire-1.0/include/tripwire.h 0 ....5P 100600 31 1 4001 0 7247 .f7mQw .f7mMb .f7mMb 0 130uuH.pBPsr1fi8Bw1Oy4zW /3n4zH0ahtlS.FgPZj0SXMPp 12zDdY ...D2m 1Xn/BT0ijD2q.skelq/m2jJT /Pj2Bz0Yattj/ZwrEJ.B2zSp 0 0 0 
  734.   /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 
  735.   /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 
  736.   /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 
  737. ***************
  738. *** 95,120 ****
  739.   /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 
  740.   /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 
  741.   /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 
  742. ! /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 
  743.   /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 
  744. ! /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 
  745.   /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 
  746.   /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 
  747. ! /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 
  748.   /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 
  749. ! /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 
  750.   /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 
  751.   /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 
  752.   /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 
  753.   /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 
  754. ! /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 
  755.   /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 
  756. ! /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 
  757.   /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 
  758.   /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 
  759.   /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 
  760.   /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 
  761. ! /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 
  762.   @@contents /tmp/genek/tripwire-1.0 0
  763.   @@contents /tmp/genek/tripwire-1.0/tests 1
  764.   @@contents /tmp/genek/tripwire-1.0/databases 2
  765. --- 95,120 ----
  766.   /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 
  767.   /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 
  768.   /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 
  769. ! /tmp/genek/tripwire-1.0/src/config.pre.y 0 ....5P 100600 33 1 4001 0 9902 .f7mQx .f7mMb .f7mMb 0 0PbDRB191T2R10Zoqz.LEONz /hTHrQ/2D8gx0o4AUo04L7kf /VIr.1 ...CIo /4KiSx15XnbJ/DlYiO.galk6 .UPi3M.Q7XFC0/dFVf1TBEjy 0 0 0 
  770.   /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 
  771. ! /tmp/genek/tripwire-1.0/src/dbase.update.c 0 ....5P 100600 35 1 4001 0 1940 .f7mQx .f7mMb .f7mMb 0 /cEyAd08fl6Z1WTNSz.cYvtu 1wQEPk0OL0II1nIic1/erhAD .KYTwt ...BBZ /9lG3T0.CW3.0AwaW50BXfkN 1wTNFj1l7Tyc0nhC4N0rrWao 0 0 0 
  772.   /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 
  773.   /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 
  774. ! /tmp/genek/tripwire-1.0/src/main.c 0 ....5P 100600 36 1 4001 0 10874 .f7mQx .f7mMc .f7mMc 0 /Vnn/t1JSPvB1QctpP/SNrRm 1EMeM8.dJK4G1j5n9K1drQyP /h0xtF ...09h /LHRD4/lGHs6.agv3g0W4axy /lN/rR.1Yczn.0aouj0JRwmq 0 0 0 
  775.   /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 
  776. ! /tmp/genek/tripwire-1.0/src/preen.c 0 ....5P 100600 37 1 4001 0 7152 .f7mQy .f7mMc .f7mMc 0 /AntfX0qu9Q60vW7L20ky5Ux ./QX7z0jLPjY1D8B.M0bdv6t 1qwdM1 ...0rJ /YoxZ8/gcW17.rU0ty/tkjPT 0Ydr12.p9gxn/DV3lS0jdmZ9 0 0 0 
  777.   /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 
  778.   /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 
  779.   /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 
  780.   /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 
  781. ! /tmp/genek/tripwire-1.0/src/dbase.build.c 0 ....5P 100600 34 1 4001 0 10242 .f7mQy .f7mMb .f7mMb 0 /33A/u1qbYNC/8zN4e1lrpcF 1y4Vu8.l//Sb1pxOEA0GdZa1 0xe8oC ...D9M 02bOmB.ghiP81F3kgc.e218L .F3Gt5.cYEvQ/r7nqb0Me0Lu 0 0 0 
  782.   /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 
  783. ! /tmp/genek/tripwire-1.0/src/config.parse.c 0 ....5P 100600 32 1 4001 0 13182 .f7mQz .f7mMb .f7mMb 0 ..2d7X1vHuEX0Z1qZG18h.QB 1Nk3YI/AJVNb1mTcNi/2wHIU /MOhPV ...1VH /W7nR9/WnJGu.WuAzx0Nyt3h /22M0e0gEXbY1yRLA.1MDJ7H 0 0 0 
  784.   /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 
  785.   /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 
  786.   /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 
  787.   /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 
  788. ! /tmp/genek/tripwire-1.0/tests/tw.db_TEST 1 ../zzz 100600 26 1 4001 0 23343 .f7mRO .f7mMV .f7mMV 0 0 0 0 0 0 0 0 0 0 
  789.   @@contents /tmp/genek/tripwire-1.0 0
  790.   @@contents /tmp/genek/tripwire-1.0/tests 1
  791.   @@contents /tmp/genek/tripwire-1.0/databases 2
  792.