From nobody@FreeBSD.org  Mon Jul 30 13:37:20 2012
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 5F410106564A
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 30 Jul 2012 13:37:20 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from red.freebsd.org (red.freebsd.org [IPv6:2001:4f8:fff6::22])
	by mx1.freebsd.org (Postfix) with ESMTP id 4B0C98FC16
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 30 Jul 2012 13:37:20 +0000 (UTC)
Received: from red.freebsd.org (localhost [127.0.0.1])
	by red.freebsd.org (8.14.4/8.14.4) with ESMTP id q6UDbKk1013850
	for <freebsd-gnats-submit@FreeBSD.org>; Mon, 30 Jul 2012 13:37:20 GMT
	(envelope-from nobody@red.freebsd.org)
Received: (from nobody@localhost)
	by red.freebsd.org (8.14.4/8.14.4/Submit) id q6UDbJ2i013849;
	Mon, 30 Jul 2012 13:37:19 GMT
	(envelope-from nobody)
Message-Id: <201207301337.q6UDbJ2i013849@red.freebsd.org>
Date: Mon, 30 Jul 2012 13:37:19 GMT
From: Chris Pepper <pepper@reppep.com>
To: freebsd-gnats-submit@FreeBSD.org
Subject: RFE: Add --check option to md5
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         170278
>Category:       bin
>Synopsis:       [patch] [request] Add --check option to md5(1)
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    eadler
>State:          feedback
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Mon Jul 30 13:40:08 UTC 2012
>Closed-Date:    
>Last-Modified:  Sat Oct 20 23:03:40 UTC 2012
>Originator:     Chris Pepper
>Release:        Isilon OneFS v6.5.4.5
>Organization:
MSKCC
>Environment:
Isilon OneFS luxisi-1 v6.5.4.5 Isilon OneFS v6.5.4.5 B_6_5_4_85(RELEASE): 0x605040000500055:Tue Nov  1 15:08:16 PDT 2011    root@fastbuild-06.west.isilon.com:/build/mnt/obj.RELEASE/build/mnt/src/sys/IQ.amd64.release amd64
>Description:
FreeBSD 'md5' should include the --check option. We use this frequently to verify the integrity of archives (we actually use a custom-built port of GNU 'md5sum').

Please add --check functionality for checking files against 'md5' (or 'md5sum') output.

Thanks!
>How-To-Repeat:
luxisi-1# md5 --check xsq.md5
md5: illegal option -- -
usage: md5 [-pqrtx] [-s string] [files ...]

>Fix:
Add --check capability, equivalent to GNU md5sum.

>Release-Note:
>Audit-Trail:

From: Alexander Pyhalov <apyhalov@gmail.com>
To: bug-followup@FreeBSD.org, pepper@reppep.com
Cc:  
Subject: Re: bin/170278: [request] Add --check option to md5(1)
Date: Fri, 31 Aug 2012 00:55:21 +0400

 --047d7b343e38c5d44d04c881e479
 Content-Type: multipart/alternative; boundary=047d7b343e38c5d44804c881e477
 
 --047d7b343e38c5d44804c881e477
 Content-Type: text/plain; charset=ISO-8859-1
 
 Attached patch implements '--check'-like feature from GNU md5sum. However,
 it seems md5sum  allows more comlex file formats.
 
 -- 
 Best regards,
 Alexander Pyhalov
 
 --047d7b343e38c5d44804c881e477
 Content-Type: text/html; charset=ISO-8859-1
 Content-Transfer-Encoding: quoted-printable
 
 Attached patch implements &#39;--check&#39;-like feature from GNU md5sum. H=
 owever, it seems md5sum =A0allows more comlex file formats.<br clear=3D"all=
 "><div><br></div>--=A0<div>Best regards,=A0<br>Alexander Pyhalov</div><div>=
 <br>
 </div>
 
 --047d7b343e38c5d44804c881e477--
 --047d7b343e38c5d44d04c881e479
 Content-Type: text/plain; charset=US-ASCII; name="patch.txt"
 Content-Disposition: attachment; filename="patch.txt"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_h6ic1u4w0
 
 LS0tIC91c3Ivc3JjL3NiaW4vbWQ1L21kNS5jCTIwMTItMDYtMDYgMjE6NDI6MTAuOTAxMjA4MTAx
 ICswNDAwCisrKyBtZDUuYwkyMDEyLTA4LTMxIDAwOjQ5OjE5LjQyMzc5OTk5OCArMDQwMApAQCAt
 MjAsMTAgKzIwLDEyIEBACiAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CiBfX0ZCU0RJRCgiJEZyZWVC
 U0QkIik7CiAKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4K
 ICNpbmNsdWRlIDxzeXMvdGltZS5oPgogI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgogI2luY2x1
 ZGUgPGVyci5oPgorI2luY2x1ZGUgPGdldG9wdC5oPgogI2luY2x1ZGUgPG1kNS5oPgogI2luY2x1
 ZGUgPHJpcGVtZC5oPgogI2luY2x1ZGUgPHNoYS5oPgpAQCAtNDEsNiArNDMsNyBAQAogI2RlZmlu
 ZSBURVNUX0JMT0NLX0NPVU5UIDEwMDAwMAogI2RlZmluZSBNRFRFU1RDT1VOVCA4CiAKK2ludCBm
 ZmxhZzsKIGludCBxZmxhZzsKIGludCByZmxhZzsKIGludCBzZmxhZzsKQEAgLTczLDYgKzc2LDcg
 QEAKIHN0YXRpYyB2b2lkIE1EVGVzdFN1aXRlKEFsZ29yaXRobV90ICopOwogc3RhdGljIHZvaWQg
 TURGaWx0ZXIoQWxnb3JpdGhtX3QgKiwgaW50KTsKIHN0YXRpYyB2b2lkIHVzYWdlKEFsZ29yaXRo
 bV90ICopOworc3RhdGljIHZvaWQgUHJvY2Vzc0NoZWNrQWdhaW5zdEZpbGUoY2hhciAqZmlsZW5h
 bWUsIGludCAqZmFpbGVkLCBpbnQgZGlnZXN0KTsKIAogdHlwZWRlZiB1bmlvbiB7CiAJTUQ1X0NU
 WCBtZDU7CkBAIC04NSw2ICs4OSwxMCBAQAogCVNIQTI1Nl9ESUdFU1RfTEVOR1RILCBSSVBFTUQx
 NjBfRElHRVNUX0xFTkdUSCkqMisxICovCiAjZGVmaW5lIEhFWF9ESUdFU1RfTEVOR1RIIDY1CiAK
 Ky8qIG1heGltdW0gbGVuZ3RoIG9mIHN0cmluZyBpbiBjb250cm9sc3VtIGZpbGUgLSBkaWdlc3Qg
 cGx1cyBmaWxlIHBhdGgKKwlwbHVzIHNvbWUgZGlsaW1pdGVycyAqLworI2RlZmluZSBNQVhfU1RS
 SU5HX0xFTkdUSCAoSEVYX0RJR0VTVF9MRU5HVEgrTUFYUEFUSExFTis2NCkKKwogLyogYWxnb3Jp
 dGhtIGZ1bmN0aW9uIHRhYmxlICovCiAKIHN0cnVjdCBBbGdvcml0aG1fdCBBbGdvcml0aG1bXSA9
 IHsKQEAgLTEyNiw2ICsxMzQsOSBAQAogCWludAlmYWlsZWQ7CiAgCXVuc2lnbmVkCWRpZ2VzdDsK
 ICAJY29uc3QgY2hhcioJcHJvZ25hbWU7CisJc3RydWN0IG9wdGlvbiBsb25nb3B0c1tdID0geyAK
 KwkJeyAiY2hlY2siLG5vX2FyZ3VtZW50LE5VTEwsJ2YnfQorICAgICAgICB9OwogCiAgCWlmICgo
 cHJvZ25hbWUgPSBzdHJyY2hyKGFyZ3ZbMF0sICcvJykpID09IE5VTEwpCiAgCQlwcm9nbmFtZSA9
 IGFyZ3ZbMF07CkBAIC0xNDIsMTEgKzE1MywxNCBAQAogCWZhaWxlZCA9IDA7CiAJY2hlY2tBZ2Fp
 bnN0ID0gTlVMTDsKIAljaGVja3NGYWlsZWQgPSAwOwotCXdoaWxlICgoY2ggPSBnZXRvcHQoYXJn
 YywgYXJndiwgImM6cHFyczp0eCIpKSAhPSAtMSkKKwl3aGlsZSAoKGNoID0gZ2V0b3B0X2xvbmco
 YXJnYywgYXJndiwgImM6cGZxcnM6dHgiLGxvbmdvcHRzLE5VTEwpKSAhPSAtMSkKIAkJc3dpdGNo
 IChjaCkgewogCQljYXNlICdjJzoKIAkJCWNoZWNrQWdhaW5zdCA9IG9wdGFyZzsKIAkJCWJyZWFr
 OworCQljYXNlICdmJzoKKwkJCWZmbGFnID0gMTsKKwkJCWJyZWFrOwogCQljYXNlICdwJzoKIAkJ
 CU1ERmlsdGVyKCZBbGdvcml0aG1bZGlnZXN0XSwgMSk7CiAJCQlicmVhazsKQEAgLTE3NCwyOSAr
 MTg4LDM1IEBACiAKIAlpZiAoKmFyZ3YpIHsKIAkJZG8gewotCQkJcCA9IEFsZ29yaXRobVtkaWdl
 c3RdLkZpbGUoKmFyZ3YsIGJ1Zik7Ci0JCQlpZiAoIXApIHsKLQkJCQl3YXJuKCIlcyIsICphcmd2
 KTsKLQkJCQlmYWlsZWQrKzsKKyAJCQlpZiAoZmZsYWcpeworCQkJCVByb2Nlc3NDaGVja0FnYWlu
 c3RGaWxlKCphcmd2LCZmYWlsZWQsZGlnZXN0KTsKIAkJCX0gZWxzZSB7Ci0JCQkJaWYgKHFmbGFn
 KQotCQkJCQlwcmludGYoIiVzIiwgcCk7Ci0JCQkJZWxzZSBpZiAocmZsYWcpCi0JCQkJCXByaW50
 ZigiJXMgJXMiLCBwLCAqYXJndik7Ci0JCQkJZWxzZQotCQkJCQlwcmludGYoIiVzICglcykgPSAl
 cyIsCi0JCQkJCSAgICBBbGdvcml0aG1bZGlnZXN0XS5uYW1lLCAqYXJndiwgcCk7Ci0JCQkJaWYg
 KGNoZWNrQWdhaW5zdCAmJiBzdHJjbXAoY2hlY2tBZ2FpbnN0LHApKQotCQkJCXsKLQkJCQkJY2hl
 Y2tzRmFpbGVkKys7Ci0JCQkJCWlmICghcWZsYWcpCi0JCQkJCQlwcmludGYoIiBbIEZhaWxlZCBd
 Iik7CisJCQkJcCA9IEFsZ29yaXRobVtkaWdlc3RdLkZpbGUoKmFyZ3YsIGJ1Zik7CisJCQkJaWYg
 KCFwKSB7CisJCQkJCXdhcm4oIiVzIiwgKmFyZ3YpOworCQkJCQlmYWlsZWQrKzsKKwkJCQl9IGVs
 c2UgeworCQkJCQlpZiAocWZsYWcpCisJCQkJCQlwcmludGYoIiVzIiwgcCk7CisJCQkJCWVsc2Ug
 aWYgKHJmbGFnKQorCQkJCQkJcHJpbnRmKCIlcyAlcyIsIHAsICphcmd2KTsKKwkJCQkJZWxzZQor
 CQkJCQkJcHJpbnRmKCIlcyAoJXMpID0gJXMiLAorCQkJCQkJCUFsZ29yaXRobVtkaWdlc3RdLm5h
 bWUsICphcmd2LCBwKTsKKwkJCQkJaWYgKGNoZWNrQWdhaW5zdCAmJiBzdHJjbXAoY2hlY2tBZ2Fp
 bnN0LHApKQorCQkJCQl7CisJCQkJCQljaGVja3NGYWlsZWQrKzsKKwkJCQkJCWlmICghcWZsYWcp
 CisJCQkJCQkJcHJpbnRmKCIgWyBGYWlsZWQgXSIpOworCQkJCQl9CisJCQkJCXByaW50ZigiXG4i
 KTsKIAkJCQl9Ci0JCQkJcHJpbnRmKCJcbiIpOwogCQkJfQogCQl9IHdoaWxlICgqKythcmd2KTsK
 LQl9IGVsc2UgaWYgKCFzZmxhZyAmJiAob3B0aW5kID09IDEgfHwgcWZsYWcgfHwgcmZsYWcpKQor
 CX0gZWxzZSBpZiAoIWZmbGFnICYmICFzZmxhZyAmJiAob3B0aW5kID09IDEgfHwgcWZsYWcgfHwg
 cmZsYWcpKQogCQlNREZpbHRlcigmQWxnb3JpdGhtW2RpZ2VzdF0sIDApOworCWVsc2UgaWYgKGZm
 bGFnKQorCQlQcm9jZXNzQ2hlY2tBZ2FpbnN0RmlsZShOVUxMLCZmYWlsZWQsZGlnZXN0KTsKIAog
 CWlmIChmYWlsZWQgIT0gMCkKIAkJcmV0dXJuICgxKTsKQEAgLTIwNSw2ICsyMjUsNzUgQEAKIAog
 CXJldHVybiAoMCk7CiB9CisKKy8qCisgKiBSZWFkcyBhIGZpbGUgd2l0aCBjb250cm9sIHN1bXMg
 YW5kIGZpbGVuYW1lcyBhbmQgY2hlY2tzIHRoZW0KKyAqLworc3RhdGljIHZvaWQKK1Byb2Nlc3ND
 aGVja0FnYWluc3RGaWxlKGNoYXIgKmZpbGVuYW1lLCBpbnQgKmZhaWxlZCwgaW50IGRpZ2VzdCl7
 CisJY2hhciAgICBidWZbSEVYX0RJR0VTVF9MRU5HVEhdOworCWNoYXIgICAgY2hlY2tBZ2FpbnN0
 Q3VyW0hFWF9ESUdFU1RfTEVOR1RIXTsKKyAgCWNoYXIgCXN0cmFyW01BWF9TVFJJTkdfTEVOR1RI
 KzFdOworCWNoYXIJKnN0cjsKKwljaGFyCWN1cmZuYW1lW01BWFBBVEhMRU4rMV07CisJY2hhciAJ
 KnA7CisJRklMRSAJKmZsOworCWludCBmaXJzdCxsZW47CisKKwlpZihmaWxlbmFtZSkKKwkJZmw9
 Zm9wZW4oZmlsZW5hbWUsInIiKTsKKwllbHNlIHsKKwkJZmw9c3RkaW47CisJfQorCWlmKGZsKXsK
 KwkJc3RyPSZzdHJhclswXTsKKwkJYnplcm8oc3RyLE1BWF9TVFJJTkdfTEVOR1RIKTsKKwkJd2hp
 bGUoZmdldHMoc3RyLE1BWF9TVFJJTkdfTEVOR1RILGZsKSl7CisJCQl3aGlsZSgoKnN0cj09JyAn
 fHwgKnN0cj09J1x0JykmJiAqc3RyIT0nXDAnKQorCQkJCXN0cisrOworCQkJZmlyc3Q9c3RyY3Nw
 bihzdHIsIlx0ICIpOworCQkJaWYoZmlyc3QgJiYgZmlyc3Q8SEVYX0RJR0VTVF9MRU5HVEgpewor
 CQkJCXN0cm5jcHkoY2hlY2tBZ2FpbnN0Q3VyLHN0cixmaXJzdCk7CisJCQkJY2hlY2tBZ2FpbnN0
 Q3VyW2ZpcnN0XT0nXDAnOworCisJCQkJc3RyPSYoc3RyW2ZpcnN0XSk7CisJCQkJd2hpbGUoKCpz
 dHI9PScgJ3x8ICpzdHI9PSdcdCcpJiYqc3RyIT0nXDAnKQorICAgICAgICAJICAgICAgIAkgICAg
 ICAgICAJc3RyKys7CisJCQkJbGVuPXN0cmxlbihzdHIpOworCQkJCWlmKGxlbj5NQVhQQVRITEVO
 KQorCQkJCQlsZW49TUFYUEFUSExFTjsKKwkJCQlzdHJuY3B5KGN1cmZuYW1lLHN0cixsZW4pOwor
 CQkJCWN1cmZuYW1lW2xlbi0xXT0nXDAnOworCQkJCXAgPSBBbGdvcml0aG1bZGlnZXN0XS5GaWxl
 KGN1cmZuYW1lLCBidWYpOworCQkJCWlmICghcCkgewkKKyAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICB3YXJuKCIlcyIsIGN1cmZuYW1lKTsKKyAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICBmYWlsZWQrKzsKKyAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgfSBlbHNlIHsKKwkJCQkJaWYgKHFmbGFnKQorICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIlcyIsIHApOworICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKHJmbGFnKQorICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCIlcyAlcyIsIHAsIGN1
 cmZuYW1lKTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbHNlCisg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiVz
 ICglcykgPSAlcyIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgIEFsZ29yaXRobVtkaWdlc3RdLm5hbWUsIGN1cmZuYW1lLCBwKTsKKwkJCQkJ
 aWYgKHN0cmNtcChjaGVja0FnYWluc3RDdXIscCkpIHsKKyAJCSAgICAgICAJICAgICAgICAgICAg
 ICAgICAgIGNoZWNrc0ZhaWxlZCsrOworICAgICAgICAgICAgICAgIAkJICAgICAgICAgICBpZiAo
 IXFmbGFnKQorICAgICAgICAgICAgICAgICAgICAgICAgCQkgICAgICAgcHJpbnRmKCIgWyBGYWls
 ZWQgXSIpOworICAgICAgICAgICAgICAgICAgICAgICAgCQl9CisJCQkJCXB1dGNoYXIoJ1xuJyk7
 CisJCQkJfQorCQkJfSBlbHNlIHsKKwkJCQkoKmZhaWxlZCkrKzsKKwkJCX0KKwkJCWJ6ZXJvKHN0
 cixNQVhfU1RSSU5HX0xFTkdUSCk7CisgICAgICAgICAgICAgICAgfQorCQlmY2xvc2UoZmwpOwor
 CX0gZWxzZSB7CisJCSgqZmFpbGVkKSsrOworCX0KK30KKwogLyoKICAqIERpZ2VzdHMgYSBzdHJp
 bmcgYW5kIHByaW50cyB0aGUgcmVzdWx0LgogICovCg==
 --047d7b343e38c5d44d04c881e479--

From: Alexander Pyhalov <apyhalov@gmail.com>
To: bug-followup@freebsd.org, pepper@reppep.com, freebsd-bugs@freebsd.org
Cc:  
Subject: Re: bin/170278: [request] Add --check option to md5(1)
Date: Sat, 1 Sep 2012 17:37:51 +0400

 --047d7b603f74d6feeb04c8a403cb
 Content-Type: multipart/alternative; boundary=047d7b603f74d6fee404c8a403c9
 
 --047d7b603f74d6fee404c8a403c9
 Content-Type: text/plain; charset=ISO-8859-1
 
 Hello.
 I''ve modified patch for md5.c, so now md5/sha256/etc handles input files
 containing checksums in two formats:
 ALGORITHM(path_to_file) = checksum
 and
 checksum path_to_file.
 
 It seems, this patch (which at least applies to md5.c in 8.3) needs testing.
 --
 Best regards,
 Alexander Pyhalov
 
 --047d7b603f74d6fee404c8a403c9
 Content-Type: text/html; charset=ISO-8859-1
 Content-Transfer-Encoding: quoted-printable
 
 Hello.<br>
 <div>I&#39;&#39;ve modified patch for md5.c, so now md5/sha256/etc handles =
 input files containing checksums in two formats:</div><div>ALGORITHM(path_t=
 o_file) =3D checksum</div><div>and=A0</div><div>checksum path_to_file.</div=
 >
 <div><br></div><div>It seems, this patch (which at least applies to md5.c i=
 n 8.3) needs testing.</div><div>--</div><div>Best regards,=A0</div><div>Ale=
 xander Pyhalov</div><div><br></div>
 
 --047d7b603f74d6fee404c8a403c9--
 --047d7b603f74d6feeb04c8a403cb
 Content-Type: text/plain; charset=US-ASCII; name="patch.txt"
 Content-Disposition: attachment; filename="patch.txt"
 Content-Transfer-Encoding: base64
 X-Attachment-Id: f_h6kr99d31
 
 LS0tIC91c3Ivc3JjL3NiaW4vbWQ1L21kNS5jCTIwMTItMDYtMDYgMjE6NDI6MTAuOTAxMjA4MTAx
 ICswNDAwCisrKyBtZDUuYwkyMDEyLTA5LTAxIDE3OjI3OjQ5Ljk1NzY1NTIyNSArMDQwMApAQCAt
 MjAsMTAgKzIwLDEzIEBACiAjaW5jbHVkZSA8c3lzL2NkZWZzLmg+CiBfX0ZCU0RJRCgiJEZyZWVC
 U0QkIik7CiAKKyNpbmNsdWRlIDxzeXMvcGFyYW0uaD4KICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4K
 ICNpbmNsdWRlIDxzeXMvdGltZS5oPgogI2luY2x1ZGUgPHN5cy9yZXNvdXJjZS5oPgorI2luY2x1
 ZGUgPGN0eXBlLmg+CiAjaW5jbHVkZSA8ZXJyLmg+CisjaW5jbHVkZSA8Z2V0b3B0Lmg+CiAjaW5j
 bHVkZSA8bWQ1Lmg+CiAjaW5jbHVkZSA8cmlwZW1kLmg+CiAjaW5jbHVkZSA8c2hhLmg+CkBAIC00
 MSw2ICs0NCw3IEBACiAjZGVmaW5lIFRFU1RfQkxPQ0tfQ09VTlQgMTAwMDAwCiAjZGVmaW5lIE1E
 VEVTVENPVU5UIDgKIAoraW50IGZmbGFnOwogaW50IHFmbGFnOwogaW50IHJmbGFnOwogaW50IHNm
 bGFnOwpAQCAtNzMsNiArNzcsOCBAQAogc3RhdGljIHZvaWQgTURUZXN0U3VpdGUoQWxnb3JpdGht
 X3QgKik7CiBzdGF0aWMgdm9pZCBNREZpbHRlcihBbGdvcml0aG1fdCAqLCBpbnQpOwogc3RhdGlj
 IHZvaWQgdXNhZ2UoQWxnb3JpdGhtX3QgKik7CitzdGF0aWMgdm9pZCBQcm9jZXNzQ2hlY2tBZ2Fp
 bnN0RmlsZShjaGFyICpmaWxlbmFtZSwgaW50ICpmYWlsZWQsIGludCBkaWdlc3QpOworc3RhdGlj
 IHZvaWQgc3RydG91cHBlcihjaGFyICpzKTsKIAogdHlwZWRlZiB1bmlvbiB7CiAJTUQ1X0NUWCBt
 ZDU7CkBAIC04NSw2ICs5MSwxMyBAQAogCVNIQTI1Nl9ESUdFU1RfTEVOR1RILCBSSVBFTUQxNjBf
 RElHRVNUX0xFTkdUSCkqMisxICovCiAjZGVmaW5lIEhFWF9ESUdFU1RfTEVOR1RIIDY1CiAKKy8q
 IG1heGltdW0gbGVuZ3RoIG9mIHN0cmluZyBpbiBjb250cm9sc3VtIGZpbGUgLSBkaWdlc3QgcGx1
 cyBmaWxlIHBhdGgKKwlwbHVzIHNvbWUgZGlsaW1pdGVycyAqLworI2RlZmluZSBNQVhfU1RSSU5H
 X0xFTkdUSCAoSEVYX0RJR0VTVF9MRU5HVEgrTUFYUEFUSExFTis2NCkKKworLyogbWF4aW11bSBs
 ZW5ndGggb2YgYWxnb3JpdGhtIG5hbWUgKi8KKyNkZWZpbmUgTUFYX0FMR19MRU5HVEggMTAKKwog
 LyogYWxnb3JpdGhtIGZ1bmN0aW9uIHRhYmxlICovCiAKIHN0cnVjdCBBbGdvcml0aG1fdCBBbGdv
 cml0aG1bXSA9IHsKQEAgLTEyNiw2ICsxMzksOSBAQAogCWludAlmYWlsZWQ7CiAgCXVuc2lnbmVk
 CWRpZ2VzdDsKICAJY29uc3QgY2hhcioJcHJvZ25hbWU7CisJc3RydWN0IG9wdGlvbiBsb25nb3B0
 c1tdID0geyAKKwkJeyAiY2hlY2siLG5vX2FyZ3VtZW50LE5VTEwsJ2YnfQorICAgICAgICB9Owog
 CiAgCWlmICgocHJvZ25hbWUgPSBzdHJyY2hyKGFyZ3ZbMF0sICcvJykpID09IE5VTEwpCiAgCQlw
 cm9nbmFtZSA9IGFyZ3ZbMF07CkBAIC0xNDIsMTEgKzE1OCwxNCBAQAogCWZhaWxlZCA9IDA7CiAJ
 Y2hlY2tBZ2FpbnN0ID0gTlVMTDsKIAljaGVja3NGYWlsZWQgPSAwOwotCXdoaWxlICgoY2ggPSBn
 ZXRvcHQoYXJnYywgYXJndiwgImM6cHFyczp0eCIpKSAhPSAtMSkKKwl3aGlsZSAoKGNoID0gZ2V0
 b3B0X2xvbmcoYXJnYywgYXJndiwgImM6cGZxcnM6dHgiLGxvbmdvcHRzLE5VTEwpKSAhPSAtMSkK
 IAkJc3dpdGNoIChjaCkgewogCQljYXNlICdjJzoKIAkJCWNoZWNrQWdhaW5zdCA9IG9wdGFyZzsK
 IAkJCWJyZWFrOworCQljYXNlICdmJzoKKwkJCWZmbGFnID0gMTsKKwkJCWJyZWFrOwogCQljYXNl
 ICdwJzoKIAkJCU1ERmlsdGVyKCZBbGdvcml0aG1bZGlnZXN0XSwgMSk7CiAJCQlicmVhazsKQEAg
 LTE3NCwyOSArMTkzLDM1IEBACiAKIAlpZiAoKmFyZ3YpIHsKIAkJZG8gewotCQkJcCA9IEFsZ29y
 aXRobVtkaWdlc3RdLkZpbGUoKmFyZ3YsIGJ1Zik7Ci0JCQlpZiAoIXApIHsKLQkJCQl3YXJuKCIl
 cyIsICphcmd2KTsKLQkJCQlmYWlsZWQrKzsKKyAJCQlpZiAoZmZsYWcpeworCQkJCVByb2Nlc3ND
 aGVja0FnYWluc3RGaWxlKCphcmd2LCZmYWlsZWQsZGlnZXN0KTsKIAkJCX0gZWxzZSB7Ci0JCQkJ
 aWYgKHFmbGFnKQotCQkJCQlwcmludGYoIiVzIiwgcCk7Ci0JCQkJZWxzZSBpZiAocmZsYWcpCi0J
 CQkJCXByaW50ZigiJXMgJXMiLCBwLCAqYXJndik7Ci0JCQkJZWxzZQotCQkJCQlwcmludGYoIiVz
 ICglcykgPSAlcyIsCi0JCQkJCSAgICBBbGdvcml0aG1bZGlnZXN0XS5uYW1lLCAqYXJndiwgcCk7
 Ci0JCQkJaWYgKGNoZWNrQWdhaW5zdCAmJiBzdHJjbXAoY2hlY2tBZ2FpbnN0LHApKQotCQkJCXsK
 LQkJCQkJY2hlY2tzRmFpbGVkKys7Ci0JCQkJCWlmICghcWZsYWcpCi0JCQkJCQlwcmludGYoIiBb
 IEZhaWxlZCBdIik7CisJCQkJcCA9IEFsZ29yaXRobVtkaWdlc3RdLkZpbGUoKmFyZ3YsIGJ1Zik7
 CisJCQkJaWYgKCFwKSB7CisJCQkJCXdhcm4oIiVzIiwgKmFyZ3YpOworCQkJCQlmYWlsZWQrKzsK
 KwkJCQl9IGVsc2UgeworCQkJCQlpZiAocWZsYWcpCisJCQkJCQlwcmludGYoIiVzIiwgcCk7CisJ
 CQkJCWVsc2UgaWYgKHJmbGFnKQorCQkJCQkJcHJpbnRmKCIlcyAlcyIsIHAsICphcmd2KTsKKwkJ
 CQkJZWxzZQorCQkJCQkJcHJpbnRmKCIlcyAoJXMpID0gJXMiLAorCQkJCQkJCUFsZ29yaXRobVtk
 aWdlc3RdLm5hbWUsICphcmd2LCBwKTsKKwkJCQkJaWYgKGNoZWNrQWdhaW5zdCAmJiBzdHJjbXAo
 Y2hlY2tBZ2FpbnN0LHApKQorCQkJCQl7CisJCQkJCQljaGVja3NGYWlsZWQrKzsKKwkJCQkJCWlm
 ICghcWZsYWcpCisJCQkJCQkJcHJpbnRmKCIgWyBGYWlsZWQgXSIpOworCQkJCQl9CisJCQkJCXBy
 aW50ZigiXG4iKTsKIAkJCQl9Ci0JCQkJcHJpbnRmKCJcbiIpOwogCQkJfQogCQl9IHdoaWxlICgq
 Kythcmd2KTsKLQl9IGVsc2UgaWYgKCFzZmxhZyAmJiAob3B0aW5kID09IDEgfHwgcWZsYWcgfHwg
 cmZsYWcpKQorCX0gZWxzZSBpZiAoIWZmbGFnICYmICFzZmxhZyAmJiAob3B0aW5kID09IDEgfHwg
 cWZsYWcgfHwgcmZsYWcpKQogCQlNREZpbHRlcigmQWxnb3JpdGhtW2RpZ2VzdF0sIDApOworCWVs
 c2UgaWYgKGZmbGFnKQorCQlQcm9jZXNzQ2hlY2tBZ2FpbnN0RmlsZShOVUxMLCZmYWlsZWQsZGln
 ZXN0KTsKIAogCWlmIChmYWlsZWQgIT0gMCkKIAkJcmV0dXJuICgxKTsKQEAgLTIwNSw2ICsyMzAs
 MTM1IEBACiAKIAlyZXR1cm4gKDApOwogfQorCisvKgorICogUmVhZHMgYSBmaWxlIHdpdGggY29u
 dHJvbCBzdW1zIGFuZCBmaWxlbmFtZXMgYW5kIGNoZWNrcyB0aGVtCisgKi8KK3N0YXRpYyB2b2lk
 CitQcm9jZXNzQ2hlY2tBZ2FpbnN0RmlsZShjaGFyICpmaWxlbmFtZSwgaW50ICpmYWlsZWQsIGlu
 dCBkaWdlc3QpeworCWNoYXIgICAgYnVmW0hFWF9ESUdFU1RfTEVOR1RIXTsKKwljaGFyICAgIGNo
 ZWNrQWdhaW5zdEN1cltIRVhfRElHRVNUX0xFTkdUSF07CisgIAljaGFyIAlzdHJhcltNQVhfU1RS
 SU5HX0xFTkdUSCsxXTsKKwljaGFyCSpjdXI7CisJY2hhcgkqc3RyOworCWNoYXIJY3VyZm5hbWVb
 TUFYUEFUSExFTisxXTsKKwljaGFyCWFsZ1tNQVhfQUxHX0xFTkdUSCsxXTsKKwljaGFyIAkqcDsK
 KwlGSUxFIAkqZmw7CisJaW50IGZpcnN0LG5leHQsZXEsbGVuLHBhcnNlZDsKKworCWlmKGZpbGVu
 YW1lKQorCQlmbD1mb3BlbihmaWxlbmFtZSwiciIpOworCWVsc2UgeworCQlmbD1zdGRpbjsKKwl9
 CisJaWYoZmwpeworCQlzdHI9JnN0cmFyWzBdOworCQliemVybyhzdHIsTUFYX1NUUklOR19MRU5H
 VEgpOworCQl3aGlsZShmZ2V0cyhzdHIsTUFYX1NUUklOR19MRU5HVEgsZmwpKXsKKwkJCXBhcnNl
 ZD0wOworCQkJYnplcm8oY2hlY2tBZ2FpbnN0Q3VyLEhFWF9ESUdFU1RfTEVOR1RIKTsKKyAgICAg
 ICAgICAgICAgICAgICAgICAgIGJ6ZXJvKGN1cmZuYW1lLE1BWFBBVEhMRU4pOworCQkJYnplcm8o
 YWxnLE1BWF9BTEdfTEVOR1RIKTsKKworCQkJd2hpbGUoaXNzcGFjZSgqc3RyKSYmICpzdHIhPSdc
 MCcpCisJCQkJc3RyKys7CisJCQlmaXJzdD1zdHJjc3BuKHN0ciwiKCIpOworCQkJaWYoZmlyc3Qp
 IHsKKwkJCQljdXI9JnN0cltmaXJzdF07CisKKwkJCQluZXh0PXN0cmxlbihzdHIpOworCQkJCXdo
 aWxlKG5leHQ+Zmlyc3QgJiYgc3RyW25leHRdIT0nKScpCisJCQkJICBuZXh0LS07CisJCQkJCisJ
 CQkJaWYoZmlyc3QmJm5leHQgJiYgbmV4dD5maXJzdCAmJiBuZXh0LWZpcnN0PD1NQVhQQVRITEVO
 KXsKKwkJCQkgIHN0cm5jcHkoY3VyZm5hbWUsJnN0cltmaXJzdCsxXSxuZXh0LWZpcnN0KTsKKwkJ
 CQkgIGN1cmZuYW1lW25leHQtZmlyc3QtMV09J1wwJzsKKwkJCQkgIHdoaWxlKGZpcnN0PjAgJiYg
 aXNzcGFjZShzdHJbZmlyc3QtMV0pKQorCQkJCQlmaXJzdC0tOworICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgIGlmKGZpcnN0PD1NQVhfQUxHX0xFTkdUSCl7CisJCQkJCXN0cm5jcHko
 YWxnLHN0cixmaXJzdCk7CisJCQkJCXN0cnRvdXBwZXIoYWxnKTsKKwkJCQkJZXE9c3RyY3Nwbigm
 c3RyW25leHRdLCI9Iik7CisJCQkJCWVxKys7CisJCQkJCXdoaWxlKGlzc3BhY2Uoc3RyW2VxK25l
 eHRdKSAmJiBzdHJbZXErbmV4dF0hPSdcMCcpCisJCQkJCQllcSsrOworCQkJCQlsZW49c3RybGVu
 KHN0cik7CisJCQkJCXdoaWxlKGlzc3BhY2Uoc3RyW2xlbl0pJiYgbGVuPm5leHQpCisJCQkJCQls
 ZW4tLTsKKwkJCQkJaWYobGVuLW5leHQtZXE8PUhFWF9ESUdFU1RfTEVOR1RIKXsKKwkJCQkJCXN0
 cm5jcHkoY2hlY2tBZ2FpbnN0Q3VyLCZzdHJbZXErbmV4dF0sbGVuLWVxLW5leHQpOworCQkJCQkJ
 Y2hlY2tBZ2FpbnN0Q3VyW2xlbi1lcS1uZXh0LTFdPSdcMCc7CisJCQkJCQlwYXJzZWQ9MTsKKwkJ
 CQkJfQorCQkJCQkKKwkJCQkJIAorIAkJCQkgIH0KKworCQkJCX0gCisJCQkJCQorCQkJfSAKKwkJ
 CWlmKCFwYXJzZWQpIHsKKwkJCQlmaXJzdD1zdHJjc3BuKHN0ciwiXHQgIik7CisJCQkJaWYoZmly
 c3QgJiYgZmlyc3Q8PUhFWF9ESUdFU1RfTEVOR1RIKXsKKwkJCQkJc3RybmNweShjaGVja0FnYWlu
 c3RDdXIsc3RyLGZpcnN0KTsKKwkJCQkJY2hlY2tBZ2FpbnN0Q3VyW2ZpcnN0XT0nXDAnOworCisJ
 CQkJCXN0cj0mKHN0cltmaXJzdF0pOworCQkJCQl3aGlsZShpc3NwYWNlKCpzdHIpJiYqc3RyIT0n
 XDAnKQorICAgICAgICAJCSAgICAgICAJICAgICAgICAgCXN0cisrOworCQkJCQlsZW49c3RybGVu
 KHN0cik7CisJCQkJCWlmKGxlbj5NQVhQQVRITEVOKQorCQkJCQkJbGVuPU1BWFBBVEhMRU47CisJ
 CQkJCXN0cm5jcHkoY3VyZm5hbWUsc3RyLGxlbik7CisJCQkJCWN1cmZuYW1lW2xlbi0xXT0nXDAn
 OworCQkJCQlzdHJuY3B5KGFsZyxBbGdvcml0aG1bZGlnZXN0XS5uYW1lLE1BWF9BTEdfTEVOR1RI
 KTsKKwkJCQkJcGFyc2VkPTE7CisJCQkJfQorCQkJfQorCQkJaWYocGFyc2VkICYmICFzdHJuY21w
 KGFsZyxBbGdvcml0aG1bZGlnZXN0XS5uYW1lLE1BWF9BTEdfTEVOR1RIKSkgeworCQkJCXAgPSBB
 bGdvcml0aG1bZGlnZXN0XS5GaWxlKGN1cmZuYW1lLCBidWYpOworCQkJCWlmICghcCkgewkKKyAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3YXJuKCIlcyIsIGN1cmZuYW1l
 KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAlmYWlsZWQrKzsKKyAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHsKKwkJCQkJaWYgKHFmbGFnKQor
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiVz
 IiwgcCk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAo
 cmZsYWcpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBw
 cmludGYoIiVzICVzIiwgcCwgY3VyZm5hbWUpOworICAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgIHByaW50ZigiJXMgKCVzKSA9ICVzIiwKKyAgICAgICAgICAgICAgICAgICAgICAg
 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQWxnb3JpdGhtW2RpZ2VzdF0ubmFtZSwg
 Y3VyZm5hbWUsIHApOworCQkJCQlpZiAoc3RyY21wKGNoZWNrQWdhaW5zdEN1cixwKSkgeworIAkJ
 ICAgICAgIAkgICAgICAgICAgICAgICAgICAgY2hlY2tzRmFpbGVkKys7CisgICAgICAgICAgICAg
 ICAgCQkgICAgICAgICAgIGlmICghcWZsYWcpCisgICAgICAgICAgICAgICAgICAgICAgICAJCSAg
 ICAgICBwcmludGYoIiBbIEZhaWxlZCBdIik7CisgICAgICAgICAgICAgICAgICAgICAgICAJCX0K
 KwkJCQkJcHV0Y2hhcignXG4nKTsKKwkJCQl9CisJCQl9IGVsc2UgeworCQkJCSgqZmFpbGVkKSsr
 OworCQkJfQorCQkJYnplcm8oc3RyLE1BWF9TVFJJTkdfTEVOR1RIKTsKKyAgICAgICAgICAgICAg
 ICB9CisJCWZjbG9zZShmbCk7CisJfSBlbHNlIHsKKwkJKCpmYWlsZWQpKys7CisJfQorfQorCisv
 KgorICogIENvbnZlcnQgc3RyaW5ncyB0byB1cHBlciBjYXNlIAorICovCitzdGF0aWMgdm9pZAor
 c3RydG91cHBlcihjaGFyICpzKXsKKwlpbnQgaTsKKwkJCisJaWYocyl7CisJCWZvcihpPTA7c1tp
 XSE9J1wwJztpKyspCisJCQlzW2ldPXRvdXBwZXIoc1tpXSk7CisJfQorfQogLyoKICAqIERpZ2Vz
 dHMgYSBzdHJpbmcgYW5kIHByaW50cyB0aGUgcmVzdWx0LgogICovCg==
 --047d7b603f74d6feeb04c8a403cb--
Responsible-Changed-From-To: freebsd-bugs->eadler 
Responsible-Changed-By: eadler 
Responsible-Changed-When: Sat Sep 1 14:13:42 UTC 2012 
Responsible-Changed-Why:  
I implemented this 

http://www.freebsd.org/cgi/query-pr.cgi?pr=170278 
State-Changed-From-To: open->feedback 
State-Changed-By: eadler 
State-Changed-When: Sat Sep 1 18:27:38 UTC 2012 
State-Changed-Why:  
what about ''     -c string 
Compare files to this md5 string.'' ? 

http://www.freebsd.org/cgi/query-pr.cgi?pr=170278 

From: Alexander Pyhalov <apyhalov@gmail.com>
To: bug-followup@FreeBSD.org, pepper@reppep.com
Cc:  
Subject: Re: bin/170278: [patch] [request] Add --check option to md5(1)
Date: Sun, 2 Sep 2012 20:47:16 +0400

 --047d7b603f7416ed4304c8bac7b0
 Content-Type: text/plain; charset=ISO-8859-1
 
 Hello.
 "-c" option compares file with given checksum, suggested oatch allows
 processing standard files with checksums similar to md5sum. It is rather
 different functionality.
 However, I'm not a bug reporter, let him present his opinion.
 -- 
 Best regards,
 Alexander Pyhalov
 
 --047d7b603f7416ed4304c8bac7b0
 Content-Type: text/html; charset=ISO-8859-1
 Content-Transfer-Encoding: quoted-printable
 
 Hello.<div>&quot;-c&quot; option compares file with given checksum, suggest=
 ed oatch allows processing standard files with checksums similar to md5sum.=
  It is rather different functionality. =A0</div><div>However, I&#39;m not a=
  bug reporter, let him present his opinion.</div>
 <div>-- <br>Best regards,
 </div><div>Alexander Pyhalov</div>
 
 --047d7b603f7416ed4304c8bac7b0--
State-Changed-From-To: feedback->open 
State-Changed-By: eadler 
State-Changed-When: Sat Sep 15 20:28:19 UTC 2012 
State-Changed-Why:  
I agree, --check / -C is different than -c; I should have implemented 
this version originally. I will take a look and attempt to commit. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=170278 
State-Changed-From-To: open->feedback 
State-Changed-By: eadler 
State-Changed-When: Sat Oct 20 23:03:39 UTC 2012 
State-Changed-Why:  
please see the follow up mail I sent 

http://www.freebsd.org/cgi/query-pr.cgi?pr=170278 
>Unformatted:
