From 6ab408bac4a2188efe2ad033e3e08ee3d4223d9e Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Sat, 23 Feb 2013 15:30:59 -0500 Subject: [PATCH] Don't write outside the requested range Ensure we don't spill BUFLEN outside of the requested length. Signed-off-by: Mathieu Desnoyers --- test-ssd-write.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/test-ssd-write.c b/test-ssd-write.c index 5b7c8c4..ea85248 100644 --- a/test-ssd-write.c +++ b/test-ssd-write.c @@ -146,13 +146,18 @@ static int rand_write(int fd, size_t len) uint64_t valcount; int ret; + if (len < BUFLEN) { + fprintf(stderr, "Error: File size needs to be at least %u\n", BUFLEN); + exit(EXIT_FAILURE); + } + memset(buf, 0, BUFLEN); for (;;) { if (len > UINT32_MAX) { - offset = (((size_t) rand() << 32) + (size_t) rand()) % len; + offset = (((size_t) rand() << 32) + (size_t) rand()) % (len - BUFLEN); } else { - offset = rand() % len; + offset = rand() % (len - BUFLEN); } if ((offset >= validate_offset && -- 2.34.1