mirror of
https://github.com/linux-sunxi/u-boot-sunxi.git
synced 2024-02-12 11:16:03 +08:00
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 <sjg@chromium.org> Reviewed-by: Alexander Graf <agraf@suse.de>
This commit is contained in:
@ -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);
|
||||
|
Reference in New Issue
Block a user