Correct overflow protection

`sizeof()` returns the number of bytes, not bits, and since this is as an unsigned type and the value typically less than 10 the assertion currently does not fail but also fails to detect problems when `MAX_N_BLOCK_ORDER` is too big as the comparison is with the the very big number resulting from an unsigned overflow, typically 2^32-2.
This commit is contained in:
Joachim Wagner 2020-09-01 13:22:31 +01:00 committed by GitHub
parent ba0078e6d8
commit 67337d7998
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -690,7 +690,7 @@ uint64_t probe_device_max_blocks(struct device *dev)
/* Make sure that there is no overflow in the formula below.
* The number 10 is arbitrary here, that is, it's not tight.
*/
assert(MAX_N_BLOCK_ORDER < sizeof(int) - 10);
assert(MAX_N_BLOCK_ORDER < 8*sizeof(int) - 10);
return
/* find_cache_size() */