summaryrefslogtreecommitdiffstats
path: root/usr.sbin/mtree/create.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/create.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/create.c')
-rw-r--r--usr.sbin/mtree/create.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/usr.sbin/mtree/create.c b/usr.sbin/mtree/create.c
index 8529986..af8d468 100644
--- a/usr.sbin/mtree/create.c
+++ b/usr.sbin/mtree/create.c
@@ -46,6 +46,7 @@ static char sccsid[] = "@(#)create.c 8.1 (Berkeley) 6/6/93";
#include <errno.h>
#include <unistd.h>
#include <stdio.h>
+#include <md5.h>
#include "mtree.h"
#include "extern.h"
@@ -187,6 +188,16 @@ statf(indent, p)
(void)close(fd);
output(indent, &offset, "cksum=%lu", val);
}
+ if (keys & F_MD5 && S_ISREG(p->fts_statp->st_mode)) {
+ char *md5digest = MD5File(p->fts_accpath);
+
+ if (!md5digest) {
+ err("%s: %s", p->fts_accpath, strerror(errno));
+ } else {
+ output(indent, &offset, "md5digest=%s", md5digest);
+ free(md5digest);
+ }
+ }
if (keys & F_SLINK &&
(p->fts_info == FTS_SL || p->fts_info == FTS_SLNONE))
output(indent, &offset, "link=%s", rlink(p->fts_accpath));
OpenPOWER on IntegriCloud