From 82569e8c31a22ecb7be40516e40f306315489f25 Mon Sep 17 00:00:00 2001 From: Rusty Russell Date: Sat, 25 Sep 2010 23:52:35 +0930 Subject: [PATCH 1/1] hash: fix overrun in test code. --- ccan/hash/test/run.c | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/ccan/hash/test/run.c b/ccan/hash/test/run.c index 31d4ecb5..dad8e86b 100644 --- a/ccan/hash/test/run.c +++ b/ccan/hash/test/run.c @@ -19,10 +19,10 @@ int main(int argc, char *argv[]) plan_tests(39); /* Hash should be the same, indep of memory alignment. */ - val = hash(array, sizeof(array), 0); + val = hash(array, ARRAY_WORDS, 0); for (i = 0; i < sizeof(uint32_t); i++) { memcpy(array2 + i, array, sizeof(array)); - ok(hash(array2 + i, sizeof(array), 0) != val, + ok(hash(array2 + i, ARRAY_WORDS, 0) != val, "hash matched at offset %i", i); } @@ -36,7 +36,7 @@ int main(int argc, char *argv[]) for (j = 0; j < 256000; j++) { for (k = 0; k < ARRAY_WORDS; k++) array[k] = random(); - results[(hash(array, sizeof(array), 0) >> i*8)&0xFF]++; + results[(hash(array, ARRAY_WORDS, 0) >> i*8)&0xFF]++; } for (j = 0; j < 256; j++) { @@ -61,7 +61,8 @@ int main(int argc, char *argv[]) for (j = 0; j < 256000; j++) { for (k = 0; k < ARRAY_WORDS; k++) array[k] = random(); - results[(hash64(array, sizeof(array), 0) >> i*8)&0xFF]++; + results[(hash64(array, sizeof(array)/sizeof(uint64_t), + 0) >> i*8)&0xFF]++; } for (j = 0; j < 256; j++) { @@ -101,11 +102,11 @@ int main(int argc, char *argv[]) } if (sizeof(long) == sizeof(uint32_t)) - ok1(hashl(array, sizeof(array), 0) - == hash(array, sizeof(array), 0)); + ok1(hashl(array, ARRAY_WORDS, 0) + == hash(array, ARRAY_WORDS, 0)); else - ok1(hashl(array, sizeof(array), 0) - == hash64(array, sizeof(array), 0)); + ok1(hashl(array, ARRAY_WORDS, 0) + == hash64(array, ARRAY_WORDS, 0)); /* String hash: weak, so only test bottom byte */ for (i = 0; i < 1; i++) { -- 2.39.2