[U-Boot] [PATCH v2 3/8] sandbox: Use memcpy() to move overlapping regions
Simon Glass
sjg at chromium.org
Tue Jun 12 06:04:57 UTC 2018
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 memcpy() instead.
Reported-by: Coverity (CID: 173279)
Signed-off-by: Simon Glass <sjg at chromium.org>
---
Changes in v2:
- Also remove the leading / from the "/spl" path
arch/sandbox/cpu/os.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/arch/sandbox/cpu/os.c b/arch/sandbox/cpu/os.c
index 5839932b00..5a12b8c677 100644
--- a/arch/sandbox/cpu/os.c
+++ b/arch/sandbox/cpu/os.c
@@ -585,9 +585,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 + 3, strlen(p + 3) + 1);
fd = os_open(fname, O_RDONLY);
if (fd >= 0) {
close(fd);
--
2.18.0.rc1.244.gcf134e6275-goog
More information about the U-Boot
mailing list