From: Jens Axboe Date: Mon, 30 Jul 2007 08:18:06 +0000 (+0200) Subject: Properly initialize md5 hash seed X-Git-Tag: fio-1.17~21 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=61f821f16cf27d8742e09b3a137c933cd0085e9b;hp=86739fcc2fec07b5acd42004fea038e0c3179732 Properly initialize md5 hash seed We started from 0, that's not entirely correct. Signed-off-by: Jens Axboe --- diff --git a/md5.c b/md5.c index cf1f814a..8f9adb22 100644 --- a/md5.c +++ b/md5.c @@ -88,6 +88,14 @@ static void md5_transform(uint32_t *hash, uint32_t const *in) hash[3] += d; } +void md5_init(struct md5_ctx *mctx) +{ + mctx->hash[0] = 0x67452301; + mctx->hash[1] = 0xefcdab89; + mctx->hash[2] = 0x98badcfe; + mctx->hash[3] = 0x10325476; +} + void md5_update(struct md5_ctx *mctx, const uint8_t *data, unsigned int len) { const uint32_t avail = sizeof(mctx->block) - (mctx->byte_count & 0x3f); diff --git a/md5.h b/md5.h index 80fbcec8..6747d306 100644 --- a/md5.h +++ b/md5.h @@ -23,5 +23,6 @@ struct md5_ctx { }; extern void md5_update(struct md5_ctx *, const uint8_t *, unsigned int); +extern void md5_init(struct md5_ctx *); #endif diff --git a/verify.c b/verify.c index 5770b461..566c53c1 100644 --- a/verify.c +++ b/verify.c @@ -187,7 +187,7 @@ static int verify_io_u_md5(struct verify_header *hdr, struct io_u *io_u, .hash = hash, }; - memset(md5_ctx.hash, 0, sizeof(hdr->md5_digest)); + md5_init(&md5_ctx); md5_update(&md5_ctx, p, hdr->len - sizeof(*hdr)); if (memcmp(hdr->md5_digest, md5_ctx.hash, sizeof(hash))) { @@ -279,7 +279,7 @@ static void fill_md5(struct verify_header *hdr, void *p, unsigned int len) .hash = (uint32_t *) hdr->md5_digest, }; - memset(md5_ctx.hash, 0, sizeof(hdr->md5_digest)); + md5_init(&md5_ctx); md5_update(&md5_ctx, p, len); }