diff options
author | wollman <wollman@FreeBSD.org> | 1995-02-10 03:12:42 +0000 |
---|---|---|
committer | wollman <wollman@FreeBSD.org> | 1995-02-10 03:12:42 +0000 |
commit | f56d4ade79467d29f0972a00c1c02315c5945d20 (patch) | |
tree | e11ae5f9067bb371fd54bdf8406046e5a527c742 /usr.sbin/mtree/compare.c | |
parent | 823ef3fe8fd2a8d1d1f0a4c195fa1202207d8f58 (diff) | |
download | FreeBSD-src-f56d4ade79467d29f0972a00c1c02315c5945d20.zip FreeBSD-src-f56d4ade79467d29f0972a00c1c02315c5945d20.tar.gz |
mtree * MD5 = better security
Idea from: Dr. John T. Wroclawski
Diffstat (limited to 'usr.sbin/mtree/compare.c')
-rw-r--r-- | usr.sbin/mtree/compare.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/usr.sbin/mtree/compare.c b/usr.sbin/mtree/compare.c index c8740fc..1a38739 100644 --- a/usr.sbin/mtree/compare.c +++ b/usr.sbin/mtree/compare.c @@ -43,6 +43,7 @@ static char sccsid[] = "@(#)compare.c 8.1 (Berkeley) 6/6/93"; #include <stdio.h> #include <time.h> #include <unistd.h> +#include <md5.h> #include "mtree.h" #include "extern.h" @@ -200,6 +201,26 @@ typeerr: LABEL; } tab = "\t"; } + if (s->flags & F_MD5) { + char *new_digest; + + new_digest = MD5File(p->fts_accpath); + if (!new_digest) { + LABEL; + printf("%sMD5File: %s: %s\n", tab, p->fts_accpath, + strerror(errno)); + tab = "\t"; + } else if (strcmp(new_digest, s->md5digest)) { + LABEL; + printf("%sMD5 (%s, %s)\n", tab, s->md5digest, + new_digest); + tab = "\t"; + free(new_digest); + } else { + free(new_digest); + } + } + if (s->flags & F_SLINK && strcmp(cp = rlink(name), s->slink)) { LABEL; (void)printf("%slink ref (%s, %s)\n", tab, cp, s->slink); |