[coreboot-gerrit] New patch to review for coreboot: 118d83e libpayload: fix a mips memmove() bug

Patrick Georgi (pgeorgi@google.com) gerrit at coreboot.org
Tue Apr 21 10:45:24 CEST 2015


Patrick Georgi (pgeorgi at google.com) just uploaded a new patch set to gerrit, which you can find at http://review.coreboot.org/9891

-gerrit

commit 118d83ee60ad1a09e59fc459469329bd1996839e
Author: Vadim Bendebury <vbendeb at chromium.org>
Date:   Thu Mar 26 13:35:23 2015 -0700

    libpayload: fix a mips memmove() bug
    
    size_t is an unsigned type and as such is a bad choice for a counting
    down loop counter.
    
    BRANCH=all
    BUG=none
    TEST=editing cli command line does not cause hangs any more
    
    Change-Id: I0502553b5e2143052345edeb205a01558fccd9b8
    Signed-off-by: Patrick Georgi <pgeorgi at chromium.org>
    Original-Commit-Id: 1c171f739497fcd26589976676ab94b23cd7ee8b
    Original-Change-Id: I4aa38379ac356114fc91a32cced2fa45a00a09d6
    Original-Signed-off-by: Vadim Bendebury <vbendeb at chromium.org>
    Original-Reviewed-on: https://chromium-review.googlesource.com/262714
    Original-Reviewed-by: Ionela Voinescu <ionela.voinescu at imgtec.com>
    Original-Tested-by: Ionela Voinescu <ionela.voinescu at imgtec.com>
    Original-Reviewed-by: David Hendricks <dhendrix at chromium.org>
---
 payloads/libpayload/arch/mips/string.c | 5 ++---
 1 file changed, 2 insertions(+), 3 deletions(-)

diff --git a/payloads/libpayload/arch/mips/string.c b/payloads/libpayload/arch/mips/string.c
index 0563cf8..6326d15 100644
--- a/payloads/libpayload/arch/mips/string.c
+++ b/payloads/libpayload/arch/mips/string.c
@@ -47,11 +47,10 @@ void *memmove(void *dest, const void *src, size_t n)
 	if ((src < dest) && (dest - src < n)) {
 		u8 *ptr_d = dest;
 		const u8 *ptr_s = src;
-		size_t i;
 
 		/* copy backwards */
-		for (i = n - 1; i >= 0; i--)
-			ptr_d[i] = ptr_s[i];
+		while (n--)
+			ptr_d[n] = ptr_s[n];
 
 		return dest;
 	}



More information about the coreboot-gerrit mailing list