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