Fwd: Re: setting checksum_seed

Craig Barratt cbarratt at users.sourceforge.net
Wed May 19 05:21:04 GMT 2004


Wayne Davison writes:

> On Sat, May 15, 2004 at 02:25:11PM -0700, Craig Barratt wrote:
> > Any feedback on this patch and the possibility of getting it
> > into CVS or the patches directory?
> 
> The file checksum-seed.diff was put into the patches dir on the 2nd of
> May.  Strangely, I don't seem to have sent any email indicating this
> (my apologies about that).
> 
> I think that this patch is a good candidate to go into the next
> release.

Unfortunately the checksum-seed.diff patch breaks authentication in
rsyncd.

The problem is that when you specify --checksum-seed=N on the client
when connecting to an rsyncd server, the authentication response is
based on an MD4 digest computed by calling sum_init(), sum_update() and
sum_end().  sum_init() adds checksum_seed to the digest data.  The
problem at this point is the args have not been sent to the server
(that happens after authentication), so the client has checksum_seed=N
and the server still has checksum_seed=0, so authentication fails.

Probably the best solution is to add a flag argument to sum_init(void)
to request whether to add checksum_seed or not.  authenticate.c calls
sum_init(0) in two places, and match.c and receiver.c call sum_init(1).
Other alternatives of adding a second sum_init_nochecksumseed() function
or saving/restoring checksum_seed in authenticate.c seem ugly.

If you agree with this fix I will have happy to submit a new patch
in the next few days.

Craig


More information about the rsync mailing list