From 4f990d5a74898e494f3b7043a79a9af904e253ab Mon Sep 17 00:00:00 2001 From: Mikulas Patocka Date: Fri, 28 Jun 2013 10:56:31 -0400 Subject: [PATCH] dm-verity: Fix a boundary condition that caused failure for certain device sizes On Fri, 28 Jun 2013, Mikulas Patocka wrote: Fix a boundary condition that caused failure for certain device sizes The problem is reported at http://code.google.com/p/cryptsetup/issues/detail?id=160 This is the userspace fix. Signed-off-by: Mikulas Patocka = 0; i--) { hash_level_block[i] = hash_position; // verity position of block data_file_blocks at level i - s = data_file_blocks >> (i * hash_per_block_bits); - s = (s + hash_per_block - 1) / hash_per_block; + s = (data_file_blocks + ((off_t)1 << ((i + 1) * hash_per_block_bits)) - 1) >> ((i + 1) * hash_per_block_bits); hash_level_size[i] = s; if ((hash_position + s) < hash_position || (hash_position + s) < 0) { -- 2.7.4