From: Simon Glass Date: Tue, 13 Nov 2018 22:55:20 +0000 (-0700) Subject: sandbox: Use memmove() to move overlapping regions X-Git-Url: http://git.dujemihanovic.xyz/%22http:/www.sics.se/static/git-logo.png?a=commitdiff_plain;h=b847c1424318c6a0b7aab14e465d7e253b162d31;p=u-boot.git sandbox: Use memmove() to move overlapping regions The use of strcpy() to remove characters at the start of a string is safe in U-Boot, since we know the implementation. But in os.c we are using the C library's strcpy() function, where this behaviour is not permitted. Update the code to use memmove() instead. Reported-by: Coverity (CID: 173279) Signed-off-by: Simon Glass Reviewed-by: Alexander Graf --- diff --git a/arch/sandbox/cpu/os.c b/arch/sandbox/cpu/os.c index aa92694342..62e05c554a 100644 --- a/arch/sandbox/cpu/os.c +++ b/arch/sandbox/cpu/os.c @@ -735,9 +735,10 @@ int os_find_u_boot(char *fname, int maxlen) } /* Look for 'u-boot' in the parent directory of spl/ */ - p = strstr(fname, "/spl/"); + p = strstr(fname, "spl/"); if (p) { - strcpy(p, p + 4); + /* Remove the "spl" characters */ + memmove(p, p + 4, strlen(p + 4) + 1); fd = os_open(fname, O_RDONLY); if (fd >= 0) { close(fd);