summaryrefslogtreecommitdiff
path: root/src/flash/nand
diff options
context:
space:
mode:
authorJon Povey <jon.povey@racelogic.co.uk>2010-05-13 18:31:41 +0900
committerØyvind Harboe <oyvind.harboe@zylin.com>2010-05-14 13:22:59 +0200
commit0eb7fb59a0afe9c82f1f3d3f88fb88e3f04d706a (patch)
tree9549ff0244ea3bd5085aa5209dd1274f33ece124 /src/flash/nand
parent215a5f7442773693045613cff9e3ce3c7f7e9678 (diff)
downloadopenocd+libswd-0eb7fb59a0afe9c82f1f3d3f88fb88e3f04d706a.tar.gz
openocd+libswd-0eb7fb59a0afe9c82f1f3d3f88fb88e3f04d706a.tar.bz2
openocd+libswd-0eb7fb59a0afe9c82f1f3d3f88fb88e3f04d706a.tar.xz
openocd+libswd-0eb7fb59a0afe9c82f1f3d3f88fb88e3f04d706a.zip
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 <jon.povey@racelogic.co.uk> Signed-off-by: Øyvind Harboe <oyvind.harboe@zylin.com>
Diffstat (limited to 'src/flash/nand')
-rw-r--r--src/flash/nand/core.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/flash/nand/core.c b/src/flash/nand/core.c
index 9013812d..e7634916 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 */