fio_sha256_init(&sha256_ctx);
fio_sha256_update(&sha256_ctx, p, hdr->len - hdr_size(hdr));
+ fio_sha256_final(&sha256_ctx);
if (!memcmp(vh->sha256, sha256_ctx.buf, sizeof(sha256)))
return 0;
fio_sha1_init(&sha1_ctx);
fio_sha1_update(&sha1_ctx, p, hdr->len - hdr_size(hdr));
+ fio_sha1_final(&sha1_ctx);
if (!memcmp(vh->sha1, sha1_ctx.H, sizeof(sha1)))
return 0;
fio_md5_init(&md5_ctx);
fio_md5_update(&md5_ctx, p, hdr->len - hdr_size(hdr));
+ fio_md5_final(&md5_ctx);
if (!memcmp(vh->md5_digest, md5_ctx.hash, sizeof(hash)))
return 0;
fio_sha256_init(&sha256_ctx);
fio_sha256_update(&sha256_ctx, p, len);
+ fio_sha256_final(&sha256_ctx);
}
static void fill_sha1(struct verify_header *hdr, void *p, unsigned int len)
fio_sha1_init(&sha1_ctx);
fio_sha1_update(&sha1_ctx, p, len);
+ fio_sha1_final(&sha1_ctx);
}
static void fill_crc7(struct verify_header *hdr, void *p, unsigned int len)
fio_md5_init(&md5_ctx);
fio_md5_update(&md5_ctx, p, len);
+ fio_md5_final(&md5_ctx);
}
static void populate_hdr(struct thread_data *td, struct io_u *io_u,
s->rand.s[1] = cpu_to_le32(td->random_state.s2);
s->rand.s[2] = cpu_to_le32(td->random_state.s3);
s->rand.s[3] = 0;
- strncpy((char *) s->name, td->o.name, sizeof(s->name));
+ s->name[sizeof(s->name) - 1] = '\0';
+ strncpy((char *) s->name, td->o.name, sizeof(s->name) - 1);
next = io_list_next(s);
}
return 0;
/*
- * If we're not into the window of issues - depth yet, continue
+ * If we're not into the window of issues - depth yet, continue. If
+ * issue is shorter than depth, do check.
*/
- if (td->io_blocks[DDIR_READ] < s->depth ||
- s->numberio - td->io_blocks[DDIR_READ] > s->depth)
+ if ((td->io_blocks[DDIR_READ] < s->depth ||
+ s->numberio - td->io_blocks[DDIR_READ] > s->depth) &&
+ s->numberio > s->depth)
return 0;
/*