From: Mikulas Patocka Date: Fri, 28 Jun 2013 14:56:31 +0000 (-0400) Subject: dm-verity: Fix a boundary condition that caused failure for certain device sizes X-Git-Tag: upstream/1.6~20 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fupstream%2Fcryptsetup.git;a=commitdiff_plain;h=4f990d5a74898e494f3b7043a79a9af904e253ab;hp=1349efa34db577947083daee2e521770614fcfe0 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) {