[U-Boot] [PATCH] km/ivm: fix string len check to support 7 char board names

The fanless boards now have a 7-digit (XXXXX-F) board name. This triggers a border condition when reading this string in the IVM although this string is smaller than the currenly read string size, but only by 1 character.
This patch corrects this by changing the size check condition for string length. It is the same change that was done in the platform for this same bug.
Signed-off-by: Valentin Longchamp valentin.longchamp@keymile.com cc: Holger Brunck holger.brunck@keymile.com cc: Stefan Bigler stefan.bigler@keymile.com --- board/keymile/common/ivm.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/board/keymile/common/ivm.c b/board/keymile/common/ivm.c index 9bc3c21..eaa924f 100644 --- a/board/keymile/common/ivm.c +++ b/board/keymile/common/ivm.c @@ -163,7 +163,7 @@ static int ivm_findinventorystring(int type, if (addr == INVENTORYDATASIZE) { xcode = -1; printf("Error end of string not found\n"); - } else if ((size >= (maxlen - 1)) && + } else if ((size > (maxlen - 1)) && (buf[addr] != '\r')) { xcode = -1; printf("string too long till next CR\n");

-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot- bounces@lists.denx.de] On Behalf Of Valentin Longchamp Sent: 14 August 2012 16:47 To: u-boot@lists.denx.de Cc: Valentin Longchamp; hs@denx.de; Holger Brunck; Stefan Bigler Subject: [U-Boot] [PATCH] km/ivm: fix string len check to support 7 char board names
The fanless boards now have a 7-digit (XXXXX-F) board name. This triggers a border condition when reading this string in the IVM although this string is smaller than the currenly read string size, but only by 1 character.
This patch corrects this by changing the size check condition for string length. It is the same change that was done in the platform for this same bug.
Signed-off-by: Valentin Longchamp valentin.longchamp@keymile.com cc: Holger Brunck holger.brunck@keymile.com cc: Stefan Bigler stefan.bigler@keymile.com
board/keymile/common/ivm.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/board/keymile/common/ivm.c b/board/keymile/common/ivm.c index 9bc3c21..eaa924f 100644 --- a/board/keymile/common/ivm.c +++ b/board/keymile/common/ivm.c @@ -163,7 +163,7 @@ static int ivm_findinventorystring(int type, if (addr == INVENTORYDATASIZE) { xcode = -1; printf("Error end of string not found\n");
} else if ((size >= (maxlen - 1)) &&
} else if ((size > (maxlen - 1)) && (buf[addr] != '\r')) { xcode = -1; printf("string too long till next CR\n");
--
Acked by: Prafulla Wadaskar prafulla@marvell.com I will pull this patch.
Regards... Prafulla . . .

-----Original Message----- From: Prafulla Wadaskar Sent: 14 August 2012 19:00 To: 'Valentin Longchamp'; u-boot@lists.denx.de Cc: hs@denx.de; Holger Brunck; Stefan Bigler Subject: RE: [U-Boot] [PATCH] km/ivm: fix string len check to support 7 char board names
-----Original Message----- From: u-boot-bounces@lists.denx.de [mailto:u-boot- bounces@lists.denx.de] On Behalf Of Valentin Longchamp Sent: 14 August 2012 16:47 To: u-boot@lists.denx.de Cc: Valentin Longchamp; hs@denx.de; Holger Brunck; Stefan Bigler Subject: [U-Boot] [PATCH] km/ivm: fix string len check to support 7 char board names
The fanless boards now have a 7-digit (XXXXX-F) board name. This triggers a border condition when reading this string in the IVM although this string is smaller than the currenly read string size, but only
by
1 character.
This patch corrects this by changing the size check condition for string length. It is the same change that was done in the platform for this same bug.
Signed-off-by: Valentin Longchamp valentin.longchamp@keymile.com cc: Holger Brunck holger.brunck@keymile.com cc: Stefan Bigler stefan.bigler@keymile.com
board/keymile/common/ivm.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/board/keymile/common/ivm.c b/board/keymile/common/ivm.c index 9bc3c21..eaa924f 100644 --- a/board/keymile/common/ivm.c +++ b/board/keymile/common/ivm.c @@ -163,7 +163,7 @@ static int ivm_findinventorystring(int type, if (addr == INVENTORYDATASIZE) { xcode = -1; printf("Error end of string not found\n");
} else if ((size >= (maxlen - 1)) &&
} else if ((size > (maxlen - 1)) && (buf[addr] != '\r')) { xcode = -1; printf("string too long till next CR\n");
--
Acked by: Prafulla Wadaskar prafulla@marvell.com I will pull this patch.
Applied to u-boot-marvell.git master branch
Regards... Prafulla . . .
participants (2)
-
Prafulla Wadaskar
-
Valentin Longchamp