Date: Mon, 17 May 2010 15:11:07 -0400 From: jhell <jhell@dataix.net> To: Eitan Adler <lists@eitanadler.com> Cc: hackers@freebsd.org Subject: Re: adding "check option to md5(1) [was: md5(1) and cal(1) on -questions] Message-ID: <4BF194CB.5060807@dataix.net> In-Reply-To: <AANLkTilye8lHWXnVh8T5SaifpkDTPBFhIKvOtOx7F09g@mail.gmail.com> References: <AANLkTilye8lHWXnVh8T5SaifpkDTPBFhIKvOtOx7F09g@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
This is a multi-part message in MIME format. --------------090009070704060703050008 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit On 05/12/2010 04:01, Eitan Adler wrote: >> D> 2. Why doesn't md5(1) have a "check" option? Seems to me requiring a >> D> manual inspection is error-prone at best, and makes scripting >> D> unecessarily complicated. > > Would something like the attached patch be good? > It adds a -c option for a string to check against. It prints > "[failed]" if the string does not match the files md5 unless in -q > mode. > It also returns 2 to indicate md5 match failure for use in scripts. > I have reviewed this patch for functionality and my final conclusion is commit it. Though I would like to see the same functionality that the GNU GPL'd version of md5 has with the '-c' option and being able to check every sum that is listed in a file against a file on disk(c), this version brings the availability to doing the checking right from md5 and utils from a script. I have also edited the manual page portion of the patch to include the '[-c string]' option in the SYNOPSIS section of the man pages. This newly generated patch was generated from the root of the source tree. # cd /path/to/src # patch </path/to/patch-file # cd /path/to/src/sbin/md5 # make obj && make depend && make && make install Additionally. Thanks for your work on this. Regards, -- jhell --------------090009070704060703050008 Content-Type: text/plain; name="md5-checksum.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="md5-checksum.patch" SW5kZXg6IHNiaW4vbWQ1L21kNS4xCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNiaW4vbWQ1L21kNS4x CShyZXZpc2lvbiAyMDgxOTQpCisrKyBzYmluL21kNS9tZDUuMQkod29ya2luZyBjb3B5KQpA QCAtOCwxOCArOCwyMiBAQAogLlNoIFNZTk9QU0lTCiAuTm0gbWQ1CiAuT3AgRmwgcHFydHgK Ky5PcCBGbCBjIEFyIHN0cmluZwogLk9wIEZsIHMgQXIgc3RyaW5nCiAuT3AgQXIKIC5ObSBz aGExCiAuT3AgRmwgcHFydHgKKy5PcCBGbCBjIEFyIHN0cmluZwogLk9wIEZsIHMgQXIgc3Ry aW5nCiAuT3AgQXIKIC5ObSBzaGEyNTYKIC5PcCBGbCBwcXJ0eAorLk9wIEZsIGMgQXIgc3Ry aW5nCiAuT3AgRmwgcyBBciBzdHJpbmcKIC5PcCBBcgogLk5tIHJtZDE2MAogLk9wIEZsIHBx cnR4CisuT3AgRmwgYyBBciBzdHJpbmcKIC5PcCBGbCBzIEFyIHN0cmluZwogLk9wIEFyCiAu U2ggREVTQ1JJUFRJT04KQEAgLTczLDYgKzc3LDggQEAKIFRoZSBoZXhhZGVjaW1hbCBjaGVj a3N1bSBvZiBlYWNoIGZpbGUgbGlzdGVkIG9uIHRoZSBjb21tYW5kIGxpbmUgaXMgcHJpbnRl ZAogYWZ0ZXIgdGhlIG9wdGlvbnMgYXJlIHByb2Nlc3NlZC4KIC5CbCAtdGFnIC13aWR0aCBp bmRlbnQKKy5JdCBGbCBjIEFyIHN0cmluZworQ29tcGFyZSBmaWxlcyB0byB0aGlzIG1kNSBz dHJpbmcKIC5JdCBGbCBzIEFyIHN0cmluZwogUHJpbnQgYSBjaGVja3N1bSBvZiB0aGUgZ2l2 ZW4KIC5BciBzdHJpbmcgLgpAQCAtMTAxLDcgKzEwNyw4IEBACiBhbmQKIC5ObSBybWQxNjAK IHV0aWxpdGllcyBleGl0IDAgb24gc3VjY2VzcywKLWFuZCAxIGlmIGF0IGxlYXN0IG9uZSBv ZiB0aGUgaW5wdXQgZmlsZXMgY291bGQgbm90IGJlIHJlYWQuCisxIGlmIGF0IGxlYXN0IG9u ZSBvZiB0aGUgaW5wdXQgZmlsZXMgY291bGQgbm90IGJlIHJlYWQsCithbmQgMiBpZiBhdCBs ZWFzdCBvbmUgZmlsZSBkb2VzIG5vdCBoYXZlIHRoZSBzYW1lIGhhc2ggYXMgdGhlIC1jIG9w dGlvbi4KIC5TaCBTRUUgQUxTTwogLlhyIGNrc3VtIDEgLAogLlhyIG1kNSAzICwKSW5kZXg6 IHNiaW4vbWQ1L21kNS5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHNiaW4vbWQ1L21kNS5jCShyZXZp c2lvbiAyMDgxOTQpCisrKyBzYmluL21kNS9tZDUuYwkod29ya2luZyBjb3B5KQpAQCAtNDQs NiArNDQsOCBAQAogaW50IHFmbGFnOwogaW50IHJmbGFnOwogaW50IHNmbGFnOwordW5zaWdu ZWQgY2hhciogY2hlY2tBZ2FpbnN0OworaW50CWNoZWNrc0ZhaWxlZDsKIAogdHlwZWRlZiB2 b2lkIChESUdFU1RfSW5pdCkodm9pZCAqKTsKIHR5cGVkZWYgdm9pZCAoRElHRVNUX1VwZGF0 ZSkodm9pZCAqLCBjb25zdCB1bnNpZ25lZCBjaGFyICosIHNpemVfdCk7CkBAIC0xMzgsOCAr MTQwLDEzIEBACiAgCQlkaWdlc3QgPSAwOwogCiAJZmFpbGVkID0gMDsKLQl3aGlsZSAoKGNo ID0gZ2V0b3B0KGFyZ2MsIGFyZ3YsICJwcXJzOnR4IikpICE9IC0xKQorCWNoZWNrQWdhaW5z dCA9IE5VTEw7CisJY2hlY2tzRmFpbGVkID0gMDsKKwl3aGlsZSAoKGNoID0gZ2V0b3B0KGFy Z2MsIGFyZ3YsICJjOnBxcnM6dHgiKSkgIT0gLTEpCiAJCXN3aXRjaCAoY2gpIHsKKwkJY2Fz ZSAnYyc6CisJCQljaGVja0FnYWluc3QgPSBvcHRhcmc7CisJCQlicmVhazsKIAkJY2FzZSAn cCc6CiAJCQlNREZpbHRlcigmQWxnb3JpdGhtW2RpZ2VzdF0sIDEpOwogCQkJYnJlYWs7CkBA IC0xNzMsMTIgKzE4MCwxOSBAQAogCQkJCWZhaWxlZCsrOwogCQkJfSBlbHNlIHsKIAkJCQlp ZiAocWZsYWcpCi0JCQkJCXByaW50ZigiJXNcbiIsIHApOworCQkJCQlwcmludGYoIiVzIiwg cCk7CiAJCQkJZWxzZSBpZiAocmZsYWcpCi0JCQkJCXByaW50ZigiJXMgJXNcbiIsIHAsICph cmd2KTsKKwkJCQkJcHJpbnRmKCIlcyAlcyIsIHAsICphcmd2KTsKIAkJCQllbHNlCi0JCQkJ CXByaW50ZigiJXMgKCVzKSA9ICVzXG4iLAorCQkJCQlwcmludGYoIiVzICglcykgPSAlcyIs CiAJCQkJCSAgICBBbGdvcml0aG1bZGlnZXN0XS5uYW1lLCAqYXJndiwgcCk7CisJCQkJaWYg KGNoZWNrQWdhaW5zdCAmJiBzdHJjbXAoY2hlY2tBZ2FpbnN0LHApKQorCQkJCXsKKwkJCQkJ Y2hlY2tzRmFpbGVkKys7CisJCQkJCWlmICghcWZsYWcpCisJCQkJCQlwcmludGYoIiVzIiwi WyBGYWlsZWQgXSIpOworCQkJCX0KKwkJCQlwcmludGYoIlxuIik7CiAJCQl9CiAJCX0gd2hp bGUgKCorK2FyZ3YpOwogCX0gZWxzZSBpZiAoIXNmbGFnICYmIChvcHRpbmQgPT0gMSB8fCBx ZmxhZyB8fCByZmxhZykpCkBAIC0xODYsNiArMjAwLDggQEAKIAogCWlmIChmYWlsZWQgIT0g MCkKIAkJcmV0dXJuICgxKTsKKwlpZiAoY2hlY2tzRmFpbGVkICE9IDApCisJCXJldHVybiAo Mik7CiAKIAlyZXR1cm4gKDApOwogfQpAQCAtMTk4LDEyICsyMTQsMjAgQEAKIAlzaXplX3Qg bGVuID0gc3RybGVuKHN0cmluZyk7CiAJY2hhciBidWZbSEVYX0RJR0VTVF9MRU5HVEhdOwog CisJYWxnLT5EYXRhKHN0cmluZyxsZW4sYnVmKTsKIAlpZiAocWZsYWcpCi0JCXByaW50Zigi JXNcbiIsIGFsZy0+RGF0YShzdHJpbmcsIGxlbiwgYnVmKSk7CisJCXByaW50ZigiJXMiLCBi dWYpOwogCWVsc2UgaWYgKHJmbGFnKQotCQlwcmludGYoIiVzIFwiJXNcIlxuIiwgYWxnLT5E YXRhKHN0cmluZywgbGVuLCBidWYpLCBzdHJpbmcpOworCQlwcmludGYoIiVzIFwiJXNcIiIs IGJ1Ziwgc3RyaW5nKTsKIAllbHNlCi0JCXByaW50ZigiJXMgKFwiJXNcIikgPSAlc1xuIiwg YWxnLT5uYW1lLCBzdHJpbmcsIGFsZy0+RGF0YShzdHJpbmcsIGxlbiwgYnVmKSk7CisJCXBy aW50ZigiJXMgKFwiJXNcIikgPSAlcyIsIGFsZy0+bmFtZSwgc3RyaW5nLCBidWYpOworCWlm IChjaGVja0FnYWluc3QgJiYgc3RyY21wKGJ1ZixjaGVja0FnYWluc3QpKQorCXsKKwkJY2hl Y2tzRmFpbGVkKys7CisJCWlmICghcWZsYWcpCisJCQlwcmludGYoIiVzIiwiIFsgZmFpbGVk IF0iKTsKKwl9CisJcHJpbnRmKCJcbiIpOwogfQogLyoKICAqIE1lYXN1cmVzIHRoZSB0aW1l IHRvIGRpZ2VzdCBURVNUX0JMT0NLX0NPVU5UIFRFU1RfQkxPQ0tfTEVOLWJ5dGUgYmxvY2tz Lgo= --------------090009070704060703050008--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4BF194CB.5060807>