summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorDarren Jenkins <darrenrjenkins@gmail.com>2006-03-26 01:37:34 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-26 08:56:57 -0800
commitd6d21dfdd305bf94300df13ff472141d3411ea17 (patch)
tree68468809491f981931db2d2bce4036d151289009 /arch
parent3ac8bf077d0f13b9c3131dd61f9f76c78c322858 (diff)
[PATCH] fix array overrun in efi.c
Coverity found an over-run @ line 364 of efi.c This is due to the loop checking the size correctly, then adding a '\0' after possibly hitting the end of the array. Ensure the loop exits with one space left in the array. Signed-off-by: Darren Jenkins <darrenrjenkins@gmail.com> Signed-off-by: Adrian Bunk <bunk@stusta.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/i386/kernel/efi.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/i386/kernel/efi.c b/arch/i386/kernel/efi.c
index c224c2aebba..9202b67c4b2 100644
--- a/arch/i386/kernel/efi.c
+++ b/arch/i386/kernel/efi.c
@@ -361,7 +361,7 @@ void __init efi_init(void)
*/
c16 = (efi_char16_t *) boot_ioremap(efi.systab->fw_vendor, 2);
if (c16) {
- for (i = 0; i < sizeof(vendor) && *c16; ++i)
+ for (i = 0; i < (sizeof(vendor) - 1) && *c16; ++i)
vendor[i] = *c16++;
vendor[i] = '\0';
} else