Displaying 5 results from an estimated 5 matches for "mdfour_tail".
2004 Nov 04
0
[Bug 2000] New: mdfour.c calculates wrong result when block is a multiple of 64 bytes long.
...Priority: P3
Component: core
AssignedTo: wayned@samba.org
ReportedBy: cph@moria.org.uk
QAContact: rsync-qa@samba.org
Purely technical, but it looks like lib/mdfour.c gets the MD4 checksum wrong
when the block is an exact multiple of 64 - it never calls mdfour_tail, so the
message length is not added to the checksummed data. Compiling mdfour.c with
TEST_MDFOUR and comparing the hashes with the output of openssl md4 on a 64 byte
file shows the bug easily.
Since rsync doesn't require the cryptographic strength of md4 anyway, perhaps it
simply doesn't m...
2002 Aug 04
1
MD4 bug in rsync for lengths = 64 * n
...ee,
except in one case: when the total data length (including the 4 byte
checksum_seed) is a multiple of 64, the MD4 checksums in librsync and
rsync don't agree. After reviewing the code in librsync, rsync and the
original RSA implementation, I believe the bug is in rsync. It doesn't
call mdfour_tail() when the last fragment is empty. Unfortunately
this happens in the particularly common case of 700 + 4 = 64 * 11.
The same bug occurs in both the block MD4s and the entire-file MD4.
The bug is benign in the sense that it is on both sides so rsync works
correctly. But it is possible (I am certa...
2006 Jan 09
2
performance with >50GB files
Hi all,
today we had a performance issue transfering a big amount of data where
one file was over 50GB. Rsync was tunneled over SSH and we expected the data
to be synced within hours. However after over 10 hours the data is still not
synced ... The sending box has rsync running with 60-80 % CPU load (2GHz
Pentium 4) while the receiver is nearly idle.
So far I had no acces to the poblematic
2020 May 24
3
[PATCH] file_checksum() optimization
...UNK)
- mdfour_update(&m, (uchar *)map_ptr(buf, i, CSUM_CHUNK), CSUM_CHUNK);
+ for (i = 0; i + CHUNK_SIZE <= len; i += CHUNK_SIZE)
+ mdfour_update(&m, (uchar *)map_ptr(buf, i, CHUNK_SIZE), CHUNK_SIZE);
/* Prior to version 27 an incorrect MD4 checksum was computed
* by failing to call mdfour_tail() for block sizes that
@@ -362,9 +362,9 @@ void file_checksum(const char *fname, const
STRUCT_STAT *st_p, char *sum)
exit_cleanup(RERR_STREAMIO);
}
- for (i = 0; i + CSUM_CHUNK <= len; i += CSUM_CHUNK) {
+ for (i = 0; i + CHUNK_SIZE <= len; i += CHUNK_SIZE) {
XXH_errorcode const update...
2004 Jan 02
0
rsync 2.6.0 (final) released
..."/foo-path/baz-bar" (unlike before).
* The exclude list specified in the daemon's config file is now
properly applied to the pulled items no matter how deep the
user's file-args are in the source tree. (Wayne Davison)
* For protocol version >= 27, mdfour_tail() is called when the
block size (including checksum_seed) is a multiple of 64.
Previously it was not called, giving the wrong MD4 checksum.
(Craig Barratt)
* For protocol version >= 27, a 64 bit bit counter is used in
mdfour.c as required by the RFC. Previously only...