summaryrefslogtreecommitdiffstats
path: root/usr.sbin/mtree/compare.c
diff options
context:
space:
mode:
authorwollman <wollman@FreeBSD.org>1995-02-10 03:12:42 +0000
committerwollman <wollman@FreeBSD.org>1995-02-10 03:12:42 +0000
commitf56d4ade79467d29f0972a00c1c02315c5945d20 (patch)
treee11ae5f9067bb371fd54bdf8406046e5a527c742 /usr.sbin/mtree/compare.c
parent823ef3fe8fd2a8d1d1f0a4c195fa1202207d8f58 (diff)
downloadFreeBSD-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.c21
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);
OpenPOWER on IntegriCloud