From dffaa1d4d1cfabdf325967dd9766adde7320e05e Mon Sep 17 00:00:00 2001 From: David Oberhollenzer Date: Wed, 11 Jan 2017 11:45:18 +0100 Subject: nandwrite: add stricter sanity checking for blockalign This patch makes sure that a virtual erase block is always composed of a postivie number of erase blocks (i.e. 1 or more) and enforces the block alignment to be a power of two as suggested by the help text and assumed throughout the program. Signed-off-by: David Oberhollenzer --- nand-utils/nandwrite.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/nand-utils/nandwrite.c b/nand-utils/nandwrite.c index 9602a6e..998c68c 100644 --- a/nand-utils/nandwrite.c +++ b/nand-utils/nandwrite.c @@ -191,9 +191,13 @@ static void process_options(int argc, char * const argv[]) errmsg_die("Can't specify negative device offset with option" " -s: %lld", mtdoffset); - if (blockalign < 0) - errmsg_die("Can't specify negative blockalign with option -b:" - " %d", blockalign); + if (blockalign <= 0) + errmsg_die("Can't specify negative or zero blockalign with " + "option -b: %d", blockalign); + + if (!is_power_of_2(blockalign)) + errmsg_die("Can't specify a non-power-of-two blockalign with " + "option -b: %d", blockalign); if (autoplace && noecc) errmsg_die("Autoplacement and no-ECC are mutually exclusive"); -- cgit v1.2.3