MD4 bug-fix for protocol version 27

jw schultz jw at
Mon May 12 21:24:17 EST 2003

On Wed, May 07, 2003 at 10:34:12PM -0700, Craig Barratt wrote:
> > while implementing the rsync protocol in one of our projects I found
> > that the current CVS version still has a MD4 bug. I'm using the FreeBSD
> > libmd implementation and I still had checksum mismatches with protocol
> > version 27 for files whose size was a multiple of 64 - 4 ( - 4 due to
> > checksum_seed). A patch for todays CVS version is attached.
> You are right.  There are three interfaces to checksum.c: the block
> checksum (get_checksum2), the file checksum (file_checksum) and the
> cumulative md4 (sum_init/sum_update/sum_end).  I missed sum_end.
> I tested the block and file checksums for a wide range of sizes,
> but not sum_end.  Ouch.
> Your patch looks correct.
> I vote for keeping the protocol version at 27.  This might trip up mixed
> CVS versions, but that is a short term issue and it would be unpleasant
> to keep indefinite support for yet another slightly broken MD4.

OK Craig, you want to commit it?

	J.W. Schultz            Pegasystems Technologies
	email address:		jw at

		Remember Cernan and Schmitt

More information about the rsync mailing list