From: Jon Povey Date: Thu, 13 May 2010 09:31:41 +0000 (+0900) Subject: NAND: fix off-by-one error in erase command argument range X-Git-Tag: v0.5.0-rc1~699 X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=commitdiff_plain;h=0eb7fb59a0afe9c82f1f3d3f88fb88e3f04d706a NAND: fix off-by-one error in erase command argument range The last_block argument to nand_erase() is checked against nand->num_blocks, but the highest valid block number is (total - 1), the test for invalid should be ">=" rather than ">". Signed-off-by: Jon Povey Signed-off-by: Øyvind Harboe --- diff --git a/src/flash/nand/core.c b/src/flash/nand/core.c index 9013812d28..e76349165e 100644 --- a/src/flash/nand/core.c +++ b/src/flash/nand/core.c @@ -528,7 +528,7 @@ int nand_erase(struct nand_device *nand, int first_block, int last_block) if (!nand->device) return ERROR_NAND_DEVICE_NOT_PROBED; - if ((first_block < 0) || (last_block > nand->num_blocks)) + if ((first_block < 0) || (last_block >= nand->num_blocks)) return ERROR_INVALID_ARGUMENTS; /* make sure we know if a block is bad before erasing it */