mirror of
https://git.codelinaro.org/clo/qsdk/oss/boot/u-boot-2016.git
synced 2025-12-10 07:44:53 +01:00
mtd: nand: use ssize_t instead of size_t to prevent infinite loop
When a all 0xFF buffer is passed to drop_ffs, the no-0xFF check loop will loop forever. After the fix, If ssize_t i = -1 and size_t l = i + 1, the value of l will still be 0 as expected. Signed-off-by: Tao Hou <hotforest@gmail.com> Cc: Ben Gardiner <bengardiner@nanometrics.ca> Cc: Scott Wood <scottwood@freescale.com>
This commit is contained in:
parent
070fd8e529
commit
453db36863
1 changed files with 2 additions and 1 deletions
|
|
@ -458,7 +458,8 @@ static int check_skip_len(nand_info_t *nand, loff_t offset, size_t length,
|
|||
static size_t drop_ffs(const nand_info_t *nand, const u_char *buf,
|
||||
const size_t *len)
|
||||
{
|
||||
size_t i, l = *len;
|
||||
size_t l = *len;
|
||||
ssize_t i;
|
||||
|
||||
for (i = l - 1; i >= 0; i--)
|
||||
if (buf[i] != 0xFF)
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue